1/*
2 * L4_MABX.c
3 *
4 * Code generation for model "L4_MABX".
5 *
6 * Model version : 1.879
7 * Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
8 * C source code generated on : Thu Jan 23 10:37:49 2020
9 *
10 * Target selection: rti1401.tlc
11 * Note: GRT includes extra infrastructure and instrumentation for prototyping
12 * Embedded hardware selection: Custom Processor->Custom
13 * Code generation objectives: Unspecified
14 * Validation result: Not run
15 */
16
17#include "L4_MABX_trc_ptr.h"
18#include "L4_MABX.h"
19#include "L4_MABX_private.h"
20
21/* Named constants for Chart: '<S79>/Chart' */
22#define L4_MABX_IN_Init ((uint8_T)1U)
23#define L4_MABX_IN_NO_ACTIVE_CHILD ((uint8_T)0U)
24#define L4_MABX_IN_OperatorDisabled ((uint8_T)2U)
25#define L4_MABX_IN_OperatorEnabled ((uint8_T)3U)
26
27/* Named constants for Chart: '<S205>/Relay_control_state_machine' */
28#define L4_MABX_IN_IGN_RELAY_LATCH ((uint8_T)1U)
29#define L4_MABX_IN_IGN_RELAY_UNLATCH ((uint8_T)1U)
30#define L4_MABX_IN_INITIAL ((uint8_T)1U)
31#define L4_MABX_IN_INV_RELAY_LATCH ((uint8_T)2U)
32#define L4_MABX_IN_INV_RELAY_UNLATCH ((uint8_T)2U)
33#define L4_MABX_IN_MABX_RELAY_LATCH ((uint8_T)3U)
34#define L4_MABX_IN_MABX_RELAY_UNLATCH ((uint8_T)3U)
35#define L4_MABX_IN_POWER_DOWN_ROUTINE ((uint8_T)2U)
36#define L4_MABX_IN_POWER_UP_ROUTINE ((uint8_T)3U)
37#define L4_MABX_IN_SENSOR_RELAY_LATCH ((uint8_T)4U)
38#define L4_MABX_IN_SENSOR_RELAY_UNLATCH ((uint8_T)4U)
39#define L4_MABX_IN_WAIT ((uint8_T)5U)
40
41/* Named constants for Chart: '<S277>/Chart' */
42#define L4_MABX_IN_OneLane ((uint8_T)1U)
43#define L4_MABX_IN_OneLane1 ((uint8_T)2U)
44#define L4_MABX_IN_TwoLanes ((uint8_T)3U)
45#define L4_MABX_IN_TwoLanes1 ((uint8_T)4U)
46#define L4_MABX_IN_ZeroLanes ((uint8_T)5U)
47#define L4_MABX_IN_ZeroLanes1 ((uint8_T)6U)
48#define L4_MABX_IN_init_h ((uint8_T)7U)
49
50/* Named constants for Chart: '<S748>/Health State Machine PWM Sensor 1' */
51#define L4_MABX_IN_ERROR ((uint8_T)1U)
52#define L4_MABX_IN_FAILURE_DETECTED ((uint8_T)1U)
53#define L4_MABX_IN_NO_FAILURE ((uint8_T)2U)
54#define L4_MABX_IN_PENDING ((uint8_T)2U)
55
56/* Named constants for Chart: '<S830>/Chart' */
57#define L4_MABX_IN_DiagPassed ((uint8_T)1U)
58#define L4_MABX_IN_SwitchOff ((uint8_T)2U)
59#define L4_MABX_IN_SwitchOn ((uint8_T)3U)
60#define L4_MABX_IN_init_a ((uint8_T)4U)
61
62/* Named constants for Chart: '<S844>/Chart' */
63#define L4_MABX_IN_CheckPacketCount ((uint8_T)1U)
64#define L4_MABX_IN_Init_i ((uint8_T)2U)
65#define L4_MABX_IN_InterframeDelay ((uint8_T)3U)
66#define L4_MABX_IN_InterframeDelay1 ((uint8_T)4U)
67#define L4_MABX_IN_SendTPCM ((uint8_T)5U)
68#define L4_MABX_IN_SendTPDT ((uint8_T)6U)
69#define L4_MABX_IN_StartMsg ((uint8_T)7U)
70#define L4_MABX_IN_WaitForNextPeriod ((uint8_T)8U)
71
72/* Exported block signals */
73real_T GLB_Absolute_Timestamp; /* '<S412>/Rate Transition' */
74real_T ReAX_ActualHandwheelPos; /* '<S438>/Switch' */
75real_T EthernetLinkStatus; /* '<S393>/dsa_tcpip_setup' */
76real_T CurrentAzimuth_rad; /* '<S391>/Switch' */
77real_T TargetAzimuth_rad; /* '<S391>/Switch1' */
78real_T TargetVelocity_kph; /* '<S391>/Switch3' */
79real_T Curvature; /* '<S391>/Switch4' */
80real_T CrosstrackError; /* '<S391>/Switch5' */
81real_T CurrentVelocity_kph; /* '<S391>/Switch2' */
82real_T GPS_X; /* '<S391>/Switch6' */
83real_T GPS_Y; /* '<S391>/Switch7' */
84real_T GPS_Time; /* '<S391>/Switch8' */
85real_T ReAX_EchoedSteerWheelPos; /* '<S438>/Switch' */
86real_T SteerWheelAngle; /* '<S640>/S-Function1' */
87real_T YawRate; /* '<S640>/S-Function1' */
88real_T SPN1810_LongitudinalAcceleration;/* '<S640>/S-Function1' */
89real_T WheelBasedVehicleSpeed; /* '<S501>/S-Function1' */
90real_T BrakeSwitch; /* '<S501>/S-Function1' */
91real_T Lateral_Control_Rate_Limit; /* '<S304>/Constant' */
92real_T Lateral_Control_Output; /* '<S275>/Sum1' */
93real_T Lateral_Control_Rate_Limiter_Output;/* '<S304>/If_Then_Else' */
94real_T SteerCommandDeg; /* '<S80>/sign flip' */
95real_T DesiredSteeringAngle; /* '<S80>/sign2' */
96real_T Lateral_Control_Heading_Error; /* '<S275>/Error Calc' */
97uint32_T DIAG_CAN1_Count_Stuff_Errors; /* '<S28>/S-Function1' */
98uint32_T DIAG_CAN1_Count_Format_Errors;/* '<S28>/S-Function1' */
99uint32_T DIAG_CAN1_Count_Ack_Errors; /* '<S28>/S-Function1' */
100uint32_T DIAG_CAN1_Count_Bit0_Errors; /* '<S28>/S-Function1' */
101uint32_T DIAG_CAN1_Count_Bit1_Errors; /* '<S28>/S-Function1' */
102uint32_T DIAG_CAN1_Count_CRC_Errors; /* '<S28>/S-Function1' */
103uint32_T DIAG_CAN1_Count_RX_Lost; /* '<S28>/S-Function1' */
104uint32_T DIAG_CAN1_Count_RX_OK; /* '<S28>/S-Function1' */
105uint32_T DIAG_CAN1_Count_TX_OK; /* '<S28>/S-Function1' */
106uint32_T DIAG_CAN5_Count_Stuff_Errors; /* '<S20>/S-Function1' */
107uint32_T DIAG_CAN5_Count_Format_Errors;/* '<S20>/S-Function1' */
108uint32_T DIAG_CAN5_Count_Ack_Errors; /* '<S20>/S-Function1' */
109uint32_T DIAG_CAN5_Count_Bit0_Errors; /* '<S20>/S-Function1' */
110uint32_T DIAG_CAN5_Count_Bit1_Errors; /* '<S20>/S-Function1' */
111uint32_T DIAG_CAN5_Count_CRC_Errors; /* '<S20>/S-Function1' */
112uint32_T DIAG_CAN5_Count_RX_Lost; /* '<S20>/S-Function1' */
113uint32_T DIAG_CAN5_Count_RX_OK; /* '<S20>/S-Function1' */
114uint32_T DIAG_CAN5_Count_TX_OK; /* '<S20>/S-Function1' */
115uint32_T DIAG_CAN6_Count_Stuff_Errors; /* '<S21>/S-Function1' */
116uint32_T DIAG_CAN6_Count_Format_Errors;/* '<S21>/S-Function1' */
117uint32_T DIAG_CAN6_Count_Ack_Errors; /* '<S21>/S-Function1' */
118uint32_T DIAG_CAN6_Count_Bit0_Errors; /* '<S21>/S-Function1' */
119uint32_T DIAG_CAN6_Count_Bit1_Errors; /* '<S21>/S-Function1' */
120uint32_T DIAG_CAN6_Count_CRC_Errors; /* '<S21>/S-Function1' */
121uint32_T DIAG_CAN6_Count_RX_Lost; /* '<S21>/S-Function1' */
122uint32_T DIAG_CAN6_Count_RX_OK; /* '<S21>/S-Function1' */
123uint32_T DIAG_CAN6_Count_TX_OK; /* '<S21>/S-Function1' */
124uint32_T DIAG_CAN3_Count_Stuff_Errors; /* '<S18>/S-Function1' */
125uint32_T DIAG_CAN3_Count_Format_Errors;/* '<S18>/S-Function1' */
126uint32_T DIAG_CAN3_Count_Ack_Errors; /* '<S18>/S-Function1' */
127uint32_T DIAG_CAN3_Count_Bit0_Errors; /* '<S18>/S-Function1' */
128uint32_T DIAG_CAN3_Count_Bit1_Errors; /* '<S18>/S-Function1' */
129uint32_T DIAG_CAN3_Count_CRC_Errors; /* '<S18>/S-Function1' */
130uint32_T DIAG_CAN3_Count_RX_Lost; /* '<S18>/S-Function1' */
131uint32_T DIAG_CAN3_Count_RX_OK; /* '<S18>/S-Function1' */
132uint32_T DIAG_CAN3_Count_TX_OK; /* '<S18>/S-Function1' */
133uint32_T DIAG_CAN4_Count_Stuff_Errors; /* '<S19>/S-Function1' */
134uint32_T DIAG_CAN4_Count_Format_Errors;/* '<S19>/S-Function1' */
135uint32_T DIAG_CAN4_Count_Ack_Errors; /* '<S19>/S-Function1' */
136uint32_T DIAG_CAN4_Count_Bit0_Errors; /* '<S19>/S-Function1' */
137uint32_T DIAG_CAN4_Count_Bit1_Errors; /* '<S19>/S-Function1' */
138uint32_T DIAG_CAN4_Count_CRC_Errors; /* '<S19>/S-Function1' */
139uint32_T DIAG_CAN4_Count_RX_Lost; /* '<S19>/S-Function1' */
140uint32_T DIAG_CAN4_Count_RX_OK; /* '<S19>/S-Function1' */
141uint32_T DIAG_CAN4_Count_TX_OK; /* '<S19>/S-Function1' */
142uint32_T DIAG_CAN2_Count_Stuff_Errors; /* '<S17>/S-Function1' */
143uint32_T DIAG_CAN2_Count_Format_Errors;/* '<S17>/S-Function1' */
144uint32_T DIAG_CAN2_Count_Ack_Errors; /* '<S17>/S-Function1' */
145uint32_T DIAG_CAN2_Count_Bit0_Errors; /* '<S17>/S-Function1' */
146uint32_T DIAG_CAN2_Count_Bit1_Errors; /* '<S17>/S-Function1' */
147uint32_T DIAG_CAN2_Count_CRC_Errors; /* '<S17>/S-Function1' */
148uint32_T DIAG_CAN2_Count_RX_Lost; /* '<S17>/S-Function1' */
149uint32_T DIAG_CAN2_Count_RX_OK; /* '<S17>/S-Function1' */
150uint32_T DIAG_CAN2_Count_TX_OK; /* '<S17>/S-Function1' */
151real32_T REAX_Handwheel_Torque; /* '<S414>/Data Type Conversion3' */
152real32_T REAX_Handwheel_Velocity; /* '<S414>/Data Type Conversion4' */
153real32_T REAX_Pull_Compensation; /* '<S414>/Data Type Conversion5' */
154ENUM_CAN_STATUS_DIAG_T DIAG_CAN1_Status;/* '<S1>/Data Type Conversion' */
155ENUM_CAN_STATUS_DIAG_T DIAG_CAN5_Status;/* '<S1>/Data Type Conversion5' */
156ENUM_CAN_STATUS_DIAG_T DIAG_CAN6_Status;/* '<S1>/Data Type Conversion4' */
157ENUM_CAN_STATUS_DIAG_T DIAG_CAN3_Status;/* '<S1>/Data Type Conversion3' */
158ENUM_CAN_STATUS_DIAG_T DIAG_CAN4_Status;/* '<S1>/Data Type Conversion2' */
159ENUM_CAN_STATUS_DIAG_T DIAG_CAN2_Status;/* '<S1>/Data Type Conversion1' */
160uint8_T SupervisorMode; /* '<S391>/Switch9' */
161uint8_T REAX_Current_Mode; /* '<S414>/Data Type Conversion' */
162uint8_T REAX_Req_Mode; /* '<S414>/Data Type Conversion1' */
163uint8_T REAX_Status; /* '<S414>/Data Type Conversion2' */
164uint8_T GLB_SWVERSION_CPV_[100]; /* '<S1076>/Constant' */
165uint8_T MABX_Mode; /* '<S76>/Switch' */
166boolean_T EStop; /* '<S411>/Logical Operator1' */
167boolean_T EnableSw; /* '<S738>/Switch' */
168boolean_T MABX_Heartbeat; /* '<S392>/Cast To Boolean' */
169boolean_T EngageRequest; /* '<S401>/AND' */
170boolean_T Heartbeat_Ok; /* '<S396>/Switch1' */
171boolean_T RTMapsOk; /* '<S391>/AND' */
172boolean_T LogEventPB; /* '<S736>/AND2' */
173boolean_T EngagePB; /* '<S411>/Logical Operator' */
174boolean_T AutonomousEnabled; /* '<S76>/AND' */
175boolean_T AutonomousOutputEnabled; /* '<S76>/Autonomous Mode Switch' */
176boolean_T RateLimiterActive; /* '<S313>/Compare' */
177real_T Pedal_pwm_position; /* '<S750>/Switch' */
178
179/* Exported block parameters */
180real_T APTC_PEDAL_LOW_IDLE_SW_THR_APV = 3.0;/* Variable: APTC_PEDAL_LOW_IDLE_SW_THR_APV
181 * Referenced by: '<S75>/Constant'
182 */
183real_T APTC_TRQ_PED_INV_MAP_PED_POS_MPV[1328] = { 0.0, 0.3125, 0.859375, 1.15625,
184 1.59375, 1.8125, 1.921875, 2.375, 3.8125, 4.3125, 4.84375, 4.96875, 5.71875,
185 6.28125, 6.5625, 6.890625, 7.0, 7.8606557377049, 9.1229508196721,
186 10.327868852459, 11.532786885246, 14.0, 15.25748502994, 15.425149700599,
187 15.718562874251, 16.808383233533, 17.730538922156, 18.023952095808,
188 18.275449101796, 18.904191616766, 19.449101796407, 19.658682634731,
189 19.74251497006, 19.826347305389, 20.287425149701, 21.0, 21.516393442623,
190 22.290983606557, 23.409836065574, 24.758196721311, 24.959016393443,
191 25.217213114754, 26.22131147541, 26.995901639344, 27.311475409836,
192 27.454918032787, 27.512295081967, 27.684426229508, 28.0, 32.101910828025,
193 32.235668789809, 34.687898089172, 35.0, 36.734104046243, 38.815028901734,
194 42.28323699422, 42.514450867052, 44.364161849711, 51.878612716763, 55.0,
195 72.260273972603, 79.041095890411, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
196 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
197 100.0, 100.0, 100.0, 100.0, 0.0, 0.33333333333333, 0.91666666666667,
198 1.2333333333333, 1.7, 1.9333333333333, 2.05, 2.5333333333333, 4.0666666666667,
199 4.6, 5.1666666666667, 5.3, 6.1, 6.7, 7.0, 8.3738317757009, 8.8317757009346,
200 9.8130841121495, 11.252336448598, 12.626168224299, 14.0, 15.559585492228,
201 16.647668393782, 16.79274611399, 17.046632124352, 17.989637305699,
202 18.787564766839, 19.041450777202, 19.259067357513, 19.80310880829,
203 20.274611398964, 20.455958549223, 20.528497409326, 20.60103626943, 21.0,
204 21.476, 21.98, 22.736, 23.828, 25.144, 25.34, 25.592, 26.572, 27.328, 27.636,
205 27.776, 27.832, 28.0, 28.478260869565, 32.478260869565, 32.608695652174, 35.0,
206 35.777777777778, 37.444444444444, 39.444444444444, 42.777777777778, 43.0,
207 44.777777777778, 52.0, 55.0, 61.237623762376, 63.688118811881, 71.262376237624,
208 75.160891089109, 78.613861386139, 96.769801980198, 97.660891089109,
209 98.329207920792, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
210 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 0.57377049180328,
211 1.577868852459, 2.1229508196721, 2.9262295081967, 3.327868852459,
212 3.5286885245902, 4.3606557377049, 7.0, 7.8549618320611, 8.763358778626,
213 8.9770992366412, 10.259541984733, 11.221374045802, 11.702290076336,
214 12.263358778626, 12.450381679389, 12.851145038168, 13.43893129771, 14.0,
215 14.757731958763, 16.309278350515, 17.39175257732, 17.536082474227,
216 17.788659793814, 18.726804123711, 19.520618556701, 19.773195876289,
217 19.989690721649, 20.530927835052, 21.0, 21.132575757576, 21.185606060606,
218 21.238636363636, 21.530303030303, 21.981060606061, 22.458333333333,
219 23.174242424242, 24.208333333333, 25.454545454545, 25.640151515152,
220 25.878787878788, 26.806818181818, 27.522727272727, 27.814393939394,
221 27.94696969697, 28.0, 28.202898550725, 28.574879227053, 31.685990338164,
222 31.787439613527, 33.647342995169, 33.884057971014, 34.391304347826, 35.0,
223 36.704545454545, 36.818181818182, 37.727272727273, 41.420454545455,
224 42.954545454545, 46.136363636364, 47.386363636364, 51.25, 53.238636363636,
225 55.0, 64.249684741488, 64.703656998739, 65.044136191677, 65.895334174023,
226 75.769230769231, 79.457755359395, 82.919293820933, 84.451450189155,
227 93.417402269861, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
228 0.0, 0.92105263157895, 2.5328947368421, 3.4078947368421, 4.6973684210526,
229 5.3421052631579, 5.6644736842105, 7.0, 8.9339339339339, 9.6066066066066,
230 10.321321321321, 10.489489489489, 11.498498498498, 12.255255255255,
231 12.633633633634, 13.075075075075, 13.222222222222, 13.537537537538, 14.0,
232 14.65625, 15.3125, 16.65625, 17.59375, 17.71875, 17.9375, 18.75, 19.4375,
233 19.65625, 19.84375, 20.3125, 20.71875, 20.875, 20.9375, 21.0, 21.310483870968,
234 21.790322580645, 22.298387096774, 23.060483870968, 24.161290322581,
235 25.487903225806, 25.685483870968, 25.939516129032, 26.927419354839,
236 27.689516129032, 28.0, 28.143442622951, 28.200819672131, 28.372950819672,
237 28.688524590164, 31.327868852459, 31.41393442623, 32.991803278689,
238 33.19262295082, 33.622950819672, 34.139344262295, 35.0, 35.082474226804,
239 35.742268041237, 38.422680412371, 39.536082474227, 41.845360824742,
240 42.752577319588, 45.556701030928, 47.0, 48.278350515464, 55.0, 55.39603960396,
241 55.693069306931, 56.435643564356, 65.049504950495, 68.267326732673,
242 71.287128712871, 72.623762376238, 80.445544554455, 86.188118811881,
243 97.326732673267, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
244 1.2068965517241, 3.3189655172414, 4.4655172413793, 6.1551724137931, 7.0,
245 7.1412103746398, 7.7262247838617, 9.5821325648415, 10.227665706052,
246 10.913544668588, 11.07492795389, 12.043227665706, 12.769452449568,
247 13.132564841499, 13.556195965418, 13.697406340058, 14.0, 14.599221789883,
248 15.171206225681, 15.743190661479, 16.91439688716, 17.731517509728,
249 17.84046692607, 18.031128404669, 18.739299610895, 19.338521400778,
250 19.529182879377, 19.692607003891, 20.101167315175, 20.455252918288,
251 20.591439688716, 20.645914396887, 20.700389105058, 21.0, 21.526548672566,
252 22.08407079646, 22.920353982301, 24.128318584071, 25.58407079646,
253 25.800884955752, 26.079646017699, 27.163716814159, 28.0, 28.282051282051,
254 28.410256410256, 28.461538461538, 28.615384615385, 28.897435897436,
255 31.25641025641, 31.333333333333, 32.74358974359, 32.923076923077,
256 33.307692307692, 33.769230769231, 34.538461538462, 34.589743589744, 35.0,
257 36.768707482993, 37.503401360544, 39.027210884354, 39.625850340136,
258 41.47619047619, 42.428571428571, 43.272108843537, 47.707482993197,
259 47.925170068027, 48.08843537415, 48.496598639456, 53.231292517007, 55.0,
260 57.99672489083, 59.323144104803, 67.085152838428, 72.78384279476,
261 83.837336244541, 86.490174672489, 91.550218340611, 99.312227074236, 100.0,
262 100.0, 100.0, 100.0, 0.0, 1.8918918918919, 5.2027027027027, 7.0,
263 7.5340599455041, 7.8010899182561, 7.9346049046322, 8.4877384196185,
264 10.242506811989, 10.852861035422, 11.50136239782, 11.653950953678,
265 12.569482288828, 13.256130790191, 13.599455040872, 14.0, 14.185606060606,
266 14.583333333333, 15.166666666667, 15.723484848485, 16.280303030303,
267 17.420454545455, 18.215909090909, 18.32196969697, 18.507575757576,
268 19.19696969697, 19.780303030303, 19.965909090909, 20.125, 20.522727272727,
269 20.867424242424, 21.0, 21.065420560748, 21.130841121495, 21.490654205607,
270 22.046728971963, 22.635514018692, 23.518691588785, 24.794392523364,
271 26.331775700935, 26.560747663551, 26.855140186916, 28.0, 28.665492957746,
272 28.93661971831, 29.05985915493, 29.109154929577, 29.257042253521,
273 29.528169014085, 31.795774647887, 31.869718309859, 33.225352112676,
274 33.397887323944, 33.767605633803, 34.211267605634, 34.950704225352, 35.0,
275 35.381406436234, 36.930870083433, 37.574493444577, 38.909415971395,
276 39.433849821216, 41.054827175209, 41.88915375447, 42.628128724672,
277 46.513706793802, 46.704410011919, 46.847437425507, 47.205005959476,
278 51.352800953516, 52.902264600715, 54.356376638856, 55.0, 62.917594654788,
279 68.730512249443, 80.005567928731, 82.711581291759, 87.873051224944,
280 95.790645879733, 96.492204899777, 100.0, 100.0, 100.0, 0.0, 7.0,
281 7.8448275862069, 8.3034482758621, 8.9793103448276, 9.3172413793103,
282 9.4862068965517, 10.186206896552, 12.406896551724, 13.179310344828, 14.0,
283 14.157303370787, 15.101123595506, 15.808988764045, 16.162921348315,
284 16.575842696629, 16.713483146067, 17.008426966292, 17.441011235955,
285 17.85393258427, 18.266853932584, 19.112359550562, 19.702247191011,
286 19.780898876404, 19.918539325843, 20.429775280899, 20.862359550562, 21.0,
287 21.192660550459, 21.674311926606, 22.091743119266, 22.252293577982,
288 22.316513761468, 22.380733944954, 22.733944954128, 23.279816513761,
289 23.857798165138, 24.724770642202, 25.977064220183, 27.48623853211,
290 27.711009174312, 28.0, 28.910780669145, 29.613382899628, 29.899628252788,
291 30.029739776952, 30.081784386617, 30.237918215613, 30.524163568773,
292 32.918215613383, 32.996282527881, 34.42750929368, 34.609665427509, 35.0,
293 35.417633410673, 36.113689095128, 36.160092807425, 36.5313225058,
294 38.039443155452, 38.665893271462, 39.965197215777, 40.475638051044,
295 42.053364269142, 42.865429234339, 43.584686774942, 47.366589327146,
296 47.552204176334, 47.691415313225, 48.039443155452, 52.07656612529,
297 53.584686774942, 55.0, 56.296691568837, 63.884738527215, 69.455709711846,
298 80.261472785486, 82.854855923159, 87.801494130203, 95.389541088581,
299 96.061899679829, 99.423692636073, 100.0, 100.0, 0.0, 7.0, 9.378640776699,
300 10.669902912621, 12.572815533981, 13.52427184466, 14.0, 14.394941634241,
301 15.647859922179, 16.083657587549, 16.546692607004, 16.655642023346,
302 17.309338521401, 17.799610894942, 18.044747081712, 18.330739299611,
303 18.426070038911, 18.630350194553, 18.929961089494, 19.215953307393,
304 19.501945525292, 20.087548638132, 20.496108949416, 20.550583657588,
305 20.645914396887, 21.0, 21.836956521739, 22.103260869565, 22.33152173913,
306 22.902173913043, 23.396739130435, 23.586956521739, 23.663043478261,
307 23.739130434783, 24.157608695652, 24.804347826087, 25.489130434783,
308 26.516304347826, 28.0, 29.305555555556, 29.5, 29.75, 30.722222222222,
309 31.472222222222, 31.777777777778, 31.916666666667, 31.972222222222,
310 32.138888888889, 32.444444444444, 35.0, 35.073529411765, 36.421568627451,
311 36.593137254902, 36.960784313725, 37.401960784314, 38.137254901961,
312 38.186274509804, 38.578431372549, 40.171568627451, 40.833333333333,
313 42.205882352941, 42.745098039216, 44.411764705882, 45.269607843137,
314 46.029411764706, 50.024509803922, 50.220588235294, 50.367647058824,
315 50.735294117647, 55.0, 57.720930232558, 60.274418604651, 61.404651162791,
316 68.018604651163, 72.874418604651, 82.293023255814, 84.553488372093,
317 88.86511627907, 95.479069767442, 96.06511627907, 98.995348837209,
318 99.497674418605, 100.0, 0.0, 14.0, 14.419520547945, 14.647260273973,
319 14.982876712329, 15.150684931507, 15.234589041096, 15.582191780822,
320 16.684931506849, 17.068493150685, 17.47602739726, 17.571917808219,
321 18.147260273973, 18.578767123288, 18.794520547945, 19.046232876712,
322 19.130136986301, 19.309931506849, 19.573630136986, 19.825342465753,
323 20.077054794521, 20.592465753425, 20.952054794521, 21.0, 21.324503311258,
324 22.529801324503, 23.549668874172, 23.87417218543, 24.152317880795,
325 24.847682119205, 25.450331125828, 25.682119205298, 25.774834437086,
326 25.867549668874, 26.377483443709, 27.165562913907, 28.0, 28.913043478261,
327 30.231884057971, 31.821256038647, 32.057971014493, 32.36231884058,
328 33.545893719807, 34.458937198068, 34.830917874396, 35.0, 35.054200542005,
329 35.216802168022, 35.514905149051, 38.008130081301, 38.089430894309,
330 39.579945799458, 39.769647696477, 40.176151761518, 40.663956639566,
331 41.476964769648, 41.531165311653, 41.964769647696, 43.726287262873,
332 44.457994579946, 45.975609756098, 46.571815718157, 48.414634146341,
333 49.363143631436, 50.20325203252, 54.620596205962, 54.837398373984, 55.0,
334 55.583910034602, 62.357266435986, 64.887543252595, 67.262110726644,
335 68.313148788927, 74.463667820069, 78.979238754325, 87.737889273356,
336 89.839965397924, 93.849480968858, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 14.0,
337 14.708092485549, 15.092485549133, 15.658959537572, 15.942196531792,
338 16.083815028902, 16.670520231214, 18.531791907514, 19.179190751445,
339 19.867052023121, 20.028901734104, 21.0, 21.739002932551, 22.108504398827,
340 22.539589442815, 22.683284457478, 22.991202346041, 23.442815249267,
341 23.873900293255, 24.304985337243, 25.187683284457, 25.803519061584,
342 25.885630498534, 26.029325513196, 26.563049853372, 27.014662756598,
343 27.158357771261, 27.281524926686, 27.589442815249, 27.856304985337,
344 27.958944281525, 28.0, 28.083333333333, 28.541666666667, 29.25, 30.0, 31.125,
345 32.75, 34.708333333333, 35.0, 35.291734197731, 36.426256077796,
346 37.301458670989, 37.658022690438, 37.820097244733, 37.884927066451,
347 38.079416531605, 38.435980551053, 41.418152350081, 41.515397082658,
348 43.298217179903, 43.525121555916, 44.011345218801, 44.594813614263,
349 45.567260940032, 45.63209076175, 46.150729335494, 48.257698541329,
350 49.132901134522, 50.948136142626, 51.661264181523, 53.865478119935, 55.0,
351 56.15671641791, 62.238805970149, 62.537313432836, 62.761194029851,
352 63.320895522388, 69.813432835821, 72.238805970149, 74.514925373134,
353 75.522388059701, 81.417910447761, 85.746268656716, 94.141791044776,
354 96.15671641791, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 14.0,
355 16.987804878049, 18.609756097561, 21.0, 21.175942549372, 21.263913824057,
356 21.628366247756, 22.784560143627, 23.18671454219, 23.614003590664,
357 23.714542190305, 24.317773788151, 24.770197486535, 24.996409335727,
358 25.260323159785, 25.34829443447, 25.536804308797, 25.81328545781,
359 26.077199281867, 26.341113105925, 26.881508078995, 27.258527827648,
360 27.308797127469, 27.396768402154, 27.723518850987, 28.0, 28.39837398374,
361 28.739837398374, 29.593495934959, 30.333333333333, 30.617886178862,
362 30.731707317073, 30.845528455285, 31.471544715447, 32.439024390244,
363 33.463414634146, 35.0, 36.553784860558, 38.426294820717, 38.705179282869,
364 39.06374501992, 40.458167330677, 41.533864541833, 41.972111553785,
365 42.171314741036, 42.250996015936, 42.490039840637, 42.92828685259,
366 46.593625498008, 46.713147410359, 48.90438247012, 49.183266932271,
367 49.780876494024, 50.498007968127, 51.693227091633, 51.772908366534,
368 52.410358565737, 55.0, 55.966587112172, 57.971360381862, 58.758949880668,
369 61.193317422434, 62.44630071599, 63.556085918854, 69.391408114558,
370 69.677804295943, 69.892601431981, 70.429594272076, 76.658711217184,
371 78.985680190931, 81.169451073986, 82.136038186158, 87.792362768496,
372 91.945107398568, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
373 21.0, 21.414551607445, 21.639593908629, 21.971235194585, 22.137055837563,
374 22.219966159052, 22.56345177665, 23.653130287648, 24.032148900169,
375 24.434856175973, 24.529610829103, 25.098138747885, 25.524534686971,
376 25.737732656514, 25.986463620981, 26.06937394247, 26.24703891709,
377 26.507614213198, 26.756345177665, 27.005076142132, 27.514382402707,
378 27.869712351946, 27.917089678511, 28.0, 30.394736842105, 32.421052631579,
379 33.065789473684, 33.618421052632, 35.0, 35.668380462725, 35.925449871465,
380 36.028277634961, 36.131105398458, 36.696658097686, 37.570694087404,
381 38.496143958869, 39.884318766067, 41.889460154242, 44.305912596401,
382 44.665809768638, 45.12853470437, 46.928020565553, 48.316195372751,
383 48.881748071979, 49.13881748072, 49.241645244216, 49.550128534704,
384 50.115681233933, 54.845758354756, 55.0, 57.201957295374, 57.482206405694,
385 58.082740213523, 58.803380782918, 60.004448398577, 60.084519572954,
386 60.725088967972, 63.327402135231, 64.408362989324, 66.650355871886,
387 67.531138790036, 70.253558718861, 71.654804270463, 72.89590747331,
388 79.421708185053, 79.741992882562, 79.982206405694, 80.582740213523,
389 87.548932384342, 90.151245551601, 92.593416370107, 93.674377224199, 100.0,
390 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 21.0,
391 21.822147651007, 22.268456375839, 22.926174496644, 23.255033557047,
392 23.419463087248, 24.10067114094, 26.261744966443, 27.013422818792,
393 27.812080536913, 28.0, 29.191489361702, 30.085106382979, 30.531914893617,
394 31.053191489362, 31.22695035461, 31.599290780142, 32.145390070922,
395 32.666666666667, 33.187943262411, 34.255319148936, 35.0, 35.298507462687,
396 35.820895522388, 37.761194029851, 39.402985074627, 39.925373134328,
397 40.373134328358, 41.492537313433, 42.462686567164, 42.835820895522,
398 42.985074626866, 43.134328358209, 43.955223880597, 45.223880597015,
399 46.567164179104, 48.582089552239, 51.492537313433, 55.0, 55.381355932203,
400 55.871670702179, 57.778450363196, 59.249394673123, 59.848668280872,
401 60.121065375303, 60.230024213075, 60.556900726392, 61.15617433414,
402 66.168280871671, 66.331719128329, 69.32808716707, 69.709443099274,
403 70.526634382567, 71.507263922518, 73.141646489104, 73.250605326877,
404 74.122276029056, 77.663438256659, 79.134382566586, 82.185230024213,
405 83.383777239709, 87.088377723971, 88.995157384988, 90.68401937046,
406 99.56416464891, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
407 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 21.0, 28.0,
408 28.383285302594, 28.948126801153, 29.230547550432, 29.371757925072,
409 29.956772334294, 31.812680115274, 32.458213256484, 33.14409221902,
410 33.305475504323, 34.273775216138, 35.0, 36.333333333333, 37.888888888889,
411 38.407407407407, 39.518518518519, 41.148148148148, 42.703703703704,
412 44.259259259259, 47.444444444444, 49.666666666667, 49.962962962963,
413 50.481481481481, 52.407407407407, 54.037037037037, 54.555555555556, 55.0,
414 55.941422594142, 56.757322175732, 57.071129707113, 57.196652719665,
415 57.322175732218, 58.012552301255, 59.07949790795, 60.20920502092,
416 61.903765690377, 64.351464435146, 67.301255230126, 67.740585774059,
417 68.305439330544, 70.502092050209, 72.196652719665, 72.887029288703,
418 73.200836820084, 73.326359832636, 73.702928870293, 74.393305439331,
419 80.167364016736, 80.355648535565, 83.807531380753, 84.246861924686,
420 85.188284518828, 86.317991631799, 88.200836820084, 88.326359832636,
421 89.330543933054, 93.410041841004, 95.10460251046, 98.619246861925, 100.0,
422 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
423 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
424 28.0, 28.95703125, 29.4765625, 30.2421875, 30.625, 30.81640625, 31.609375,
425 34.125, 35.0, 37.098765432099, 37.592592592593, 40.555555555556,
426 42.777777777778, 43.888888888889, 45.185185185185, 45.617283950617,
427 46.543209876543, 47.901234567901, 49.197530864198, 50.493827160494,
428 53.148148148148, 55.0, 55.234680573664, 55.645371577575, 57.170795306389,
429 58.461538461538, 58.87222946545, 59.224250325945, 60.104302477184,
430 60.867014341591, 61.16036505867, 61.277705345502, 61.395045632334,
431 62.040417209909, 63.037809647979, 64.093872229465, 65.677966101695,
432 67.966101694915, 70.723598435463, 71.134289439374, 71.662320730117,
433 73.715775749674, 75.299869621904, 75.945241199478, 76.238591916558,
434 76.35593220339, 76.707953063885, 77.35332464146, 82.750977835724,
435 82.926988265971, 86.153846153846, 86.564537157757, 87.444589308996,
436 88.500651890482, 90.26075619296, 90.378096479791, 91.316818774446,
437 95.13037809648, 96.714471968709, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
438 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
439 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
440 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
441 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
442 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
443 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
444 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
445 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
446 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
447 100.0 } ; /* Variable: APTC_TRQ_PED_INV_MAP_PED_POS_MPV
448 * Referenced by: '<S85>/2D_Lookup_Table'
449 */
450
451real_T APTC_TRQ_PED_INV_MAP_TRQ_STEPS[83] = { 0.0, 20.0, 55.0, 74.0, 102.0,
452 116.0, 123.0, 152.0, 244.0, 276.0, 310.0, 318.0, 366.0, 402.0, 420.0, 441.0,
453 448.0, 463.0, 485.0, 506.0, 527.0, 570.0, 600.0, 604.0, 611.0, 637.0, 659.0,
454 666.0, 672.0, 687.0, 700.0, 705.0, 707.0, 709.0, 720.0, 737.0, 755.0, 782.0,
455 821.0, 868.0, 875.0, 884.0, 919.0, 946.0, 957.0, 962.0, 964.0, 970.0, 981.0,
456 1073.0, 1076.0, 1131.0, 1138.0, 1153.0, 1171.0, 1201.0, 1203.0, 1219.0, 1284.0,
457 1311.0, 1367.0, 1389.0, 1457.0, 1492.0, 1523.0, 1686.0, 1694.0, 1700.0, 1715.0,
458 1889.0, 1954.0, 2015.0, 2042.0, 2200.0, 2316.0, 2541.0, 2595.0, 2698.0, 2856.0,
459 2870.0, 2940.0, 2952.0, 2964.0 } ; /* Variable: APTC_TRQ_PED_INV_MAP_TRQ_STEPS
460 * Referenced by: '<S85>/2D_Lookup_Table'
461 */
462
463real_T APTC_TRQ_PED_TRQ_DATA_MPV[128] = { 0.0, 448.0, 570.0, 737.0, 981.0,
464 1138.0, 1311.0, 1457.0, 0.0, 420.0, 527.0, 720.0, 970.0, 1131.0, 1311.0,
465 1715.0, 0.0, 244.0, 506.0, 700.0, 964.0, 1171.0, 1523.0, 2316.0, 0.0, 152.0,
466 485.0, 709.0, 957.0, 1201.0, 1686.0, 2595.0, 0.0, 116.0, 463.0, 720.0, 946.0,
467 1219.0, 1954.0, 2870.0, 0.0, 74.0, 441.0, 705.0, 919.0, 1203.0, 2042.0, 2940.0,
468 0.0, 20.0, 310.0, 666.0, 884.0, 1153.0, 2015.0, 2952.0, 0.0, 20.0, 123.0,
469 637.0, 821.0, 1073.0, 1889.0, 2964.0, 0.0, 20.0, 20.0, 604.0, 755.0, 962.0,
470 1700.0, 2856.0, 0.0, 20.0, 20.0, 366.0, 707.0, 875.0, 1492.0, 2698.0, 0.0,
471 20.0, 20.0, 102.0, 659.0, 782.0, 1284.0, 2541.0, 0.0, 20.0, 20.0, 20.0, 611.0,
472 687.0, 1076.0, 2200.0, 0.0, 20.0, 20.0, 20.0, 318.0, 600.0, 868.0, 1694.0, 0.0,
473 20.0, 20.0, 20.0, 55.0, 402.0, 672.0, 1389.0, 0.0, 20.0, 20.0, 20.0, 20.0,
474 276.0, 600.0, 1367.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: APTC_TRQ_PED_TRQ_DATA_MPV
475 * Referenced by: '<S83>/2-D Lookup Table'
476 */
477
478real_T APTC_TRQ_PED_TRQ_ESPD_STEP_MPV[16] = { 500.0, 650.0, 885.0, 950.0, 1050.0,
479 1120.0, 1240.0, 1360.0, 1475.0, 1590.0, 1710.0, 1830.0, 1950.0, 2150.0, 2300.0,
480 2350.0 } ; /* Variable: APTC_TRQ_PED_TRQ_ESPD_STEP_MPV
481 * Referenced by:
482 * '<S83>/2-D Lookup Table'
483 * '<S85>/2D_Lookup_Table'
484 */
485
486real_T APTC_TRQ_PED_TRQ_POS_STEP_MPV[8] = { 0.0, 7.0, 14.0, 21.0, 28.0, 35.0,
487 55.0, 100.0 } ; /* Variable: APTC_TRQ_PED_TRQ_POS_STEP_MPV
488 * Referenced by: '<S83>/2-D Lookup Table'
489 */
490
491real_T BRK_DEM_KD_DATA_MPV[8] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: BRK_DEM_KD_DATA_MPV
492 * Referenced by: '<S143>/1D_Lookup_Table'
493 */
494
495real_T BRK_DEM_KI_DATA_MPV[8] = { -1.5, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5
496} ; /* Variable: BRK_DEM_KI_DATA_MPV
497 * Referenced by: '<S142>/1D_Lookup_Table'
498 */
499
500real_T BRK_DEM_KP_DATA_MPV[8] = { -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0
501} ; /* Variable: BRK_DEM_KP_DATA_MPV
502 * Referenced by: '<S141>/1D_Lookup_Table'
503 */
504
505real_T BRK_DEM_MASS_STEP_MPV[8] = { 0.0, 5000.0, 10000.0, 20000.0, 30000.0,
506 40000.0, 50000.0, 54000.0 } ; /* Variable: BRK_DEM_MASS_STEP_MPV
507 * Referenced by:
508 * '<S141>/1D_Lookup_Table'
509 * '<S142>/1D_Lookup_Table'
510 * '<S143>/1D_Lookup_Table'
511 */
512
513real_T BRK_GOV_FF_DECEL_RATE_DATA_MPV[32] = { 0.0, -0.39, -1.76, -3.13, -4.5,
514 -5.87, -7.24, -8.61, -9.98, -11.35, -12.72, -14.09, -15.46, -16.83, -18.2,
515 -19.57, 0.0, -0.12, -0.53, -0.94, -1.35, -1.76, -2.17, -2.58, -2.99, -3.41,
516 -3.82, -4.23, -4.64, -5.05, -5.46, -5.87 } ;/* Variable: BRK_GOV_FF_DECEL_RATE_DATA_MPV
517 * Referenced by: '<S193>/2D_Lookup_Table'
518 */
519
520real_T BRK_GOV_FF_DECEL_RATE_STEP_MPV[16] = { -19.57, -18.2, -16.83, -15.46,
521 -14.09, -12.72, -11.35, -9.98, -8.61, -7.24, -5.87, -4.5, -3.13, -1.76, -0.39,
522 0.0 } ; /* Variable: BRK_GOV_FF_DECEL_RATE_STEP_MPV
523 * Referenced by:
524 * '<S194>/2D_Lookup_Table'
525 * '<S195>/2D_Lookup_Table'
526 */
527
528real_T BRK_GOV_FF_MASS_STEP_MPV[2] = { 9035.0, 36287.0 } ;/* Variable: BRK_GOV_FF_MASS_STEP_MPV
529 * Referenced by:
530 * '<S193>/2D_Lookup_Table'
531 * '<S194>/2D_Lookup_Table'
532 * '<S195>/2D_Lookup_Table'
533 */
534
535real_T BRK_GOV_FF_PRESS_KPA_DATA_MPV[32] = { 1034.0, 965.0, 896.0, 827.0, 758.0,
536 689.0, 621.0, 552.0, 483.0, 414.0, 345.0, 276.0, 207.0, 138.0, 69.0, 0.0,
537 2585.0, 2413.0, 2240.0, 2068.0, 1895.0, 1723.0, 1553.0, 1380.0, 1208.0, 1035.0,
538 863.0, 690.0, 518.0, 345.0, 173.0, 0.0 } ;/* Variable: BRK_GOV_FF_PRESS_KPA_DATA_MPV
539 * Referenced by:
540 * '<S194>/2D_Lookup_Table'
541 * '<S195>/2D_Lookup_Table'
542 */
543
544real_T BRK_GOV_FF_PRESS_KPA_STEP_MPV[16] = { 0.0, 69.0, 138.0, 207.0, 276.0,
545 345.0, 414.0, 483.0, 552.0, 621.0, 689.0, 758.0, 827.0, 896.0, 965.0, 1034.0 }
546; /* Variable: BRK_GOV_FF_PRESS_KPA_STEP_MPV
547 * Referenced by: '<S193>/2D_Lookup_Table'
548 */
549
550real_T Curvature_FF_Gain = 5.7; /* Variable: Curvature_FF_Gain
551 * Referenced by: '<S275>/FeedforwardGain'
552 */
553real_T DISTANCE_M = 200.0; /* Variable: DISTANCE_M
554 * Referenced by: '<S81>/DISTANCE_M'
555 */
556real_T Lateral_Control_Curvature_Limit = 0.5;/* Variable: Lateral_Control_Curvature_Limit
557 * Referenced by:
558 * '<S275>/Constant3'
559 * '<S275>/Constant5'
560 */
561real_T Lateral_Control_D = 0.1; /* Variable: Lateral_Control_D
562 * Referenced by: '<S301>/Derivative Gain'
563 */
564real_T Lateral_Control_Error_Limit = 0.1;/* Variable: Lateral_Control_Error_Limit
565 * Referenced by:
566 * '<S275>/Constant'
567 * '<S275>/Constant1'
568 */
569real_T Lateral_Control_Error_Rate_Limit = 0.05;/* Variable: Lateral_Control_Error_Rate_Limit
570 * Referenced by:
571 * '<S275>/Constant10'
572 * '<S275>/Constant7'
573 * '<S275>/Constant8'
574 * '<S275>/Constant9'
575 */
576real_T Lateral_Control_I = 0.0; /* Variable: Lateral_Control_I
577 * Referenced by: '<S301>/Integral Gain'
578 */
579real_T Lateral_Control_P = 0.5; /* Variable: Lateral_Control_P
580 * Referenced by:
581 * '<S275>/PGain'
582 * '<S301>/Proportional Gain'
583 */
584real_T Lateral_Control_Pole = 0.98; /* Variable: Lateral_Control_Pole
585 * Referenced by: '<S305>/GainPole'
586 */
587real_T Lateral_Control_Rate_Limit_APV = 0.05;/* Variable: Lateral_Control_Rate_Limit_APV
588 * Referenced by: '<S304>/Constant'
589 */
590real_T Lateral_Control_YawRate_Limit = 1.0;/* Variable: Lateral_Control_YawRate_Limit
591 * Referenced by:
592 * '<S275>/Constant2'
593 * '<S275>/Constant4'
594 */
595real_T Lateral_Control_Zero = 0.99; /* Variable: Lateral_Control_Zero
596 * Referenced by: '<S305>/GainZero'
597 */
598real_T PROPB_REAX_1_E4_DESIRED_POSITION_APV = 0.0;/* Variable: PROPB_REAX_1_E4_DESIRED_POSITION_APV
599 * Referenced by: '<S979>/Constant7'
600 */
601real_T REAX_OFFSET_APV = 0.0; /* Variable: REAX_OFFSET_APV
602 * Referenced by:
603 * '<S80>/Constant'
604 * '<S274>/ReAX Offset'
605 * '<S275>/Constant6'
606 */
607real_T STANLEY_GAIN_APV = 320.0; /* Variable: STANLEY_GAIN_APV
608 * Referenced by: '<S274>/StanleySteeringControlGain'
609 */
610real_T STEERCTRL_WHEEL_ANGLE_DATA_MPV[72] = { -800.02001953125, -780.02899169922,
611 -760.03399658203, -740.0, -720.0, -700.00402832031, -680.0, -660.01397705078,
612 -640.01898193359, -620.02398681641, -600.02001953125, -580.03399658203,
613 -560.03900146484, -540.0, -520.00402832031, -500.00900268555, -480.01400756836,
614 -460.01901245117, -440.02398681641, -420.01998901367, -400.03399658203,
615 -380.03900146484, -360.0, -340.00399780273, -320.00900268555, -300.01400756836,
616 -280.01901245117, -260.02398681641, -240.02900695801, -220.03399658203,
617 -200.03900146484, -180.0, -160.00399780273, -140.00900268555, -120.01399993896,
618 -100.01899719238, -80.024002075195, -60.028999328613, -40.034000396729,
619 0.52700001001358, 29.969999313354, 50.00899887085, 69.959999084473,
620 89.949996948242, 109.99500274658, 129.99000549316, 149.98500061035,
621 170.0240020752, 189.97500610352, 209.9700012207, 229.96499633789,
622 249.96000671387, 270.0, 289.99499511719, 309.98999023438, 329.98498535156,
623 349.98001098633, 369.97500610352, 390.01400756836, 410.00900268555, 450.0,
624 470.0299987793, 489.98999023438, 509.98498535156, 529.97998046875,
625 549.97497558594, 569.96997070313, 589.96502685547, 610.21997070313, 630.0,
626 650.25, 670.0 } ; /* Variable: STEERCTRL_WHEEL_ANGLE_DATA_MPV
627 * Referenced by: '<S270>/1D_Lookup_Table'
628 */
629
630real_T STEERCTRL_WHEEL_ANGLE_STEP_MPV[72] = { -46.0, -44.5, -43.0, -42.0, -40.0,
631 -39.0, -37.5, -36.5, -35.0, -34.0, -33.0, -31.5, -30.5, -29.0, -28.0, -26.5,
632 -25.5, -24.5, -23.5, -22.0, -21.0, -20.0, -19.0, -17.5, -16.5, -15.5, -14.0,
633 -13.0, -12.0, -11.0, -10.0, -8.5, -7.5, -6.5, -5.0, -4.0, -3.0, -2.0, -1.0,
634 0.0, 1.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0,
635 15.0, 16.0, 17.0, 18.5, 19.5, 20.5, 21.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5,
636 29.0, 30.0, 31.0, 31.5, 32.5, 33.0 } ;/* Variable: STEERCTRL_WHEEL_ANGLE_STEP_MPV
637 * Referenced by: '<S270>/1D_Lookup_Table'
638 */
639
640real_T TQ_DEM_GEAR_RATIO_STEP_MPV[8] = { 0.0, 0.2, 4.0, 8.0, 10.0, 16.0, 18.0,
641 20.0 } ; /* Variable: TQ_DEM_GEAR_RATIO_STEP_MPV
642 * Referenced by:
643 * '<S235>/2D_Lookup_Table'
644 * '<S236>/2D_Lookup_Table'
645 * '<S237>/2D_Lookup_Table'
646 */
647
648real_T TQ_DEM_KD_DATA_MPV[64] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
649 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
650 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
651 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
652 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: TQ_DEM_KD_DATA_MPV
653 * Referenced by: '<S237>/2D_Lookup_Table'
654 */
655
656real_T TQ_DEM_KI_DATA_MPV[64] = { 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
657 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
658 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
659 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
660 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7 } ;/* Variable: TQ_DEM_KI_DATA_MPV
661 * Referenced by: '<S236>/2D_Lookup_Table'
662 */
663
664real_T TQ_DEM_KP_DATA_MPV[64] = { 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
665 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
666 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
667 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
668 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0 } ;/* Variable: TQ_DEM_KP_DATA_MPV
669 * Referenced by: '<S235>/2D_Lookup_Table'
670 */
671
672real_T TQ_DEM_MASS_STEP_MPV[8] = { 0.0, 5000.0, 10000.0, 20000.0, 30000.0,
673 40000.0, 50000.0, 54000.0 } ; /* Variable: TQ_DEM_MASS_STEP_MPV
674 * Referenced by:
675 * '<S235>/2D_Lookup_Table'
676 * '<S236>/2D_Lookup_Table'
677 * '<S237>/2D_Lookup_Table'
678 */
679
680real_T UndersteerCorection = 0.5; /* Variable: UndersteerCorection
681 * Referenced by: '<S275>/UndersteerCorrection'
682 */
683real_T VSPD_TARGET_KPH_APV = 0.0; /* Variable: VSPD_TARGET_KPH_APV
684 * Referenced by: '<S81>/VSPD_TARGET_KPH_APV'
685 */
686real_T YAW_RATE_OFFSET_APV = -0.0066; /* Variable: YAW_RATE_OFFSET_APV
687 * Referenced by: '<S275>/YAW_RATE_OFFSET_APV'
688 */
689real_T Yaw_Rate_FF_Gain = 0.1; /* Variable: Yaw_Rate_FF_Gain
690 * Referenced by: '<S275>/RateFeedbackGain'
691 */
692ENUM_AUTONOMOUS_MODE_T AUTONOMOUS_MODE_SELECTOR_APV =
693 ENUM_AUTONOMOUS_MODE_T_AUTO; /* Variable: AUTONOMOUS_MODE_SELECTOR_APV
694 * Referenced by: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
695 */
696ENUM_CAN_RX_T CANR_PROPB_XPR_1_50_CHANNEL_APV = ENUM_CAN_RX_T_RX_CAN_3;/* Variable: CANR_PROPB_XPR_1_50_CHANNEL_APV
697 * Referenced by: '<S441>/Constant'
698 */
699ENUM_CAN_RX_T PROPB_REAX_CHANNEL_APV = ENUM_CAN_RX_T_RX_CAN_2;/* Variable: PROPB_REAX_CHANNEL_APV
700 * Referenced by:
701 * '<S439>/Constant'
702 * '<S440>/Constant'
703 * '<S461>/Constant3'
704 */
705ENUM_LAT_STEER_SOURCE_T LAT_STEER_SRC_SELECTOR_APV =
706 ENUM_LAT_STEER_SOURCE_T_PIC_HARIS; /* Variable: LAT_STEER_SRC_SELECTOR_APV
707 * Referenced by: '<S80>/LAT_STEER_SRC_SELECTOR_APV'
708 */
709ENUM_LONG_SPEED_DEMAND_SOURCE_T LONG_SPEED_SRC_SELECTOR_APV =
710 ENUM_LONG_SPEED_DEMAND_SOURCE_T_WAYPOINTS;/* Variable: LONG_SPEED_SRC_SELECTOR_APV
711 * Referenced by:
712 * '<S80>/LONG_SPEED_SRC_SELECTOR_APV'
713 * '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
714 */
715ENUM_REAX_OPERATION_MODE_T PROPB_REAX_1_E4_DESIRED_OPMODE_APV =
716 ENUM_REAX_OPERATION_MODE_T_POSITION_CTRL_MODE;/* Variable: PROPB_REAX_1_E4_DESIRED_OPMODE_APV
717 * Referenced by: '<S962>/Constant6'
718 */
719ENUM_STEERING_POS_SIGNAL_SOURCE_T PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV =
720 ENUM_STEERING_POS_SIGNAL_SOURCE_T_ESTIMATION;/* Variable: PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV
721 * Referenced by: '<S979>/Constant1'
722 */
723ENUM_SWITCH_T RATE_LIMITER_ENABLE_APV = ENUM_SWITCH_T_ON;/* Variable: RATE_LIMITER_ENABLE_APV
724 * Referenced by: '<S304>/RATE_LIMITER_ENABLE_APV'
725 */
726
727/* Block signals (default storage) */
728B_L4_MABX_T L4_MABX_B;
729
730/* Block states (default storage) */
731DW_L4_MABX_T L4_MABX_DW;
732
733/* Previous zero-crossings (trigger) states */
734PrevZCX_L4_MABX_T L4_MABX_PrevZCX;
735
736/* Real-time model */
737RT_MODEL_L4_MABX_T L4_MABX_M_;
738RT_MODEL_L4_MABX_T *const L4_MABX_M = &L4_MABX_M_;
739
740/* Forward declaration for local functions */
741static int32_T safe_cast_to_ENUM_XPR_CONTROL_M(int32_T input);
742static int32_T safe_cast_to_ENUM_XPR_ERROR_STA(int32_T input);
743static void L4_MABX_enter_atomic_INITIAL(void);
744static void L4_MABX_Calculate_abc(void);
745static void L4_MABX_CalculateAlternate_abc(void);
746static void L4_MABX_CalculateAcceleration34(void);
747static int32_T safe_cast_to_ENUM_CAN_STATUS_DI(int32_T input);
748
749/* Lookup Binary Search Utility BINARYSEARCH_real_T */
750void BINARYSEARCH_real_T(uint32_T *piLeft, uint32_T *piRght, real_T u, const
751 real_T *pData, uint32_T iHi)
752{
753 /* Find the location of current input value in the data table. */
754 *piLeft = 0U;
755 *piRght = iHi;
756 if (u <= pData[0] ) {
757 /* Less than or equal to the smallest point in the table. */
758 *piRght = 0U;
759 } else if (u >= pData[iHi] ) {
760 /* Greater than or equal to the largest point in the table. */
761 *piLeft = iHi;
762 } else {
763 uint32_T i;
764
765 /* Do a binary search. */
766 while (( *piRght - *piLeft ) > 1U ) {
767 /* Get the average of the left and right indices using to Floor rounding. */
768 i = (*piLeft + *piRght) >> 1;
769
770 /* Move either the right index or the left index so that */
771 /* LeftDataPoint <= CurrentValue < RightDataPoint */
772 if (u < pData[i] ) {
773 *piRght = i;
774 } else {
775 *piLeft = i;
776 }
777 }
778 }
779}
780
781/* Lookup Utility LookUp_real_T_real_T */
782void LookUp_real_T_real_T(real_T *pY, const real_T *pYData, real_T u, const
783 real_T *pUData, uint32_T iHi)
784{
785 uint32_T iLeft;
786 uint32_T iRght;
787 BINARYSEARCH_real_T( &(iLeft), &(iRght), u, pUData, iHi);
788
789 {
790 real_T lambda;
791 if (pUData[iRght] > pUData[iLeft] ) {
792 real_T num;
793 real_T den;
794 den = pUData[iRght];
795 den -= pUData[iLeft];
796 num = u;
797 num -= pUData[iLeft];
798 lambda = num / den;
799 } else {
800 lambda = 0.0;
801 }
802
803 {
804 real_T yLeftCast;
805 real_T yRghtCast;
806 yLeftCast = pYData[iLeft];
807 yRghtCast = pYData[iRght];
808 yLeftCast += lambda * ( yRghtCast - yLeftCast );
809 (*pY) = yLeftCast;
810 }
811 }
812}
813
814real_T look1_binlcapw(real_T u0, const real_T bp0[], const real_T table[],
815 uint32_T maxIndex)
816{
817 real_T y;
818 real_T frac;
819 uint32_T iRght;
820 uint32_T iLeft;
821 uint32_T bpIdx;
822
823 /* Lookup 1-D
824 Search method: 'binary'
825 Use previous index: 'off'
826 Interpolation method: 'Linear point-slope'
827 Extrapolation method: 'Clip'
828 Use last breakpoint for index at or above upper limit: 'on'
829 Remove protection against out-of-range input in generated code: 'off'
830 */
831 /* Prelookup - Index and Fraction
832 Index Search method: 'binary'
833 Extrapolation method: 'Clip'
834 Use previous index: 'off'
835 Use last breakpoint for index at or above upper limit: 'on'
836 Remove protection against out-of-range input in generated code: 'off'
837 */
838 if (u0 <= bp0[0U]) {
839 iLeft = 0U;
840 frac = 0.0;
841 } else if (u0 < bp0[maxIndex]) {
842 /* Binary Search */
843 bpIdx = maxIndex >> 1U;
844 iLeft = 0U;
845 iRght = maxIndex;
846 while (iRght - iLeft > 1U) {
847 if (u0 < bp0[bpIdx]) {
848 iRght = bpIdx;
849 } else {
850 iLeft = bpIdx;
851 }
852
853 bpIdx = (iRght + iLeft) >> 1U;
854 }
855
856 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
857 } else {
858 iLeft = maxIndex;
859 frac = 0.0;
860 }
861
862 /* Interpolation 1-D
863 Interpolation method: 'Linear point-slope'
864 Use last breakpoint for index at or above upper limit: 'on'
865 Overflow mode: 'portable wrapping'
866 */
867 if (iLeft == maxIndex) {
868 y = table[iLeft];
869 } else {
870 y = (table[iLeft + 1U] - table[iLeft]) * frac + table[iLeft];
871 }
872
873 return y;
874}
875
876real_T look2_binlcapw(real_T u0, real_T u1, const real_T bp0[], const real_T
877 bp1[], const real_T table[], const uint32_T maxIndex[],
878 uint32_T stride)
879{
880 real_T y;
881 real_T frac;
882 uint32_T bpIndices[2];
883 real_T fractions[2];
884 real_T yR_1d;
885 uint32_T iRght;
886 uint32_T bpIdx;
887 uint32_T iLeft;
888
889 /* Lookup 2-D
890 Search method: 'binary'
891 Use previous index: 'off'
892 Interpolation method: 'Linear point-slope'
893 Extrapolation method: 'Clip'
894 Use last breakpoint for index at or above upper limit: 'on'
895 Remove protection against out-of-range input in generated code: 'off'
896 */
897 /* Prelookup - Index and Fraction
898 Index Search method: 'binary'
899 Extrapolation method: 'Clip'
900 Use previous index: 'off'
901 Use last breakpoint for index at or above upper limit: 'on'
902 Remove protection against out-of-range input in generated code: 'off'
903 */
904 if (u0 <= bp0[0U]) {
905 iLeft = 0U;
906 frac = 0.0;
907 } else if (u0 < bp0[maxIndex[0U]]) {
908 /* Binary Search */
909 bpIdx = maxIndex[0U] >> 1U;
910 iLeft = 0U;
911 iRght = maxIndex[0U];
912 while (iRght - iLeft > 1U) {
913 if (u0 < bp0[bpIdx]) {
914 iRght = bpIdx;
915 } else {
916 iLeft = bpIdx;
917 }
918
919 bpIdx = (iRght + iLeft) >> 1U;
920 }
921
922 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
923 } else {
924 iLeft = maxIndex[0U];
925 frac = 0.0;
926 }
927
928 fractions[0U] = frac;
929 bpIndices[0U] = iLeft;
930
931 /* Prelookup - Index and Fraction
932 Index Search method: 'binary'
933 Extrapolation method: 'Clip'
934 Use previous index: 'off'
935 Use last breakpoint for index at or above upper limit: 'on'
936 Remove protection against out-of-range input in generated code: 'off'
937 */
938 if (u1 <= bp1[0U]) {
939 iLeft = 0U;
940 frac = 0.0;
941 } else if (u1 < bp1[maxIndex[1U]]) {
942 /* Binary Search */
943 bpIdx = maxIndex[1U] >> 1U;
944 iLeft = 0U;
945 iRght = maxIndex[1U];
946 while (iRght - iLeft > 1U) {
947 if (u1 < bp1[bpIdx]) {
948 iRght = bpIdx;
949 } else {
950 iLeft = bpIdx;
951 }
952
953 bpIdx = (iRght + iLeft) >> 1U;
954 }
955
956 frac = (u1 - bp1[iLeft]) / (bp1[iLeft + 1U] - bp1[iLeft]);
957 } else {
958 iLeft = maxIndex[1U];
959 frac = 0.0;
960 }
961
962 /* Interpolation 2-D
963 Interpolation method: 'Linear point-slope'
964 Use last breakpoint for index at or above upper limit: 'on'
965 Overflow mode: 'portable wrapping'
966 */
967 bpIdx = iLeft * stride + bpIndices[0U];
968 if (bpIndices[0U] == maxIndex[0U]) {
969 y = table[bpIdx];
970 } else {
971 y = (table[bpIdx + 1U] - table[bpIdx]) * fractions[0U] + table[bpIdx];
972 }
973
974 if (iLeft == maxIndex[1U]) {
975 } else {
976 bpIdx += stride;
977 if (bpIndices[0U] == maxIndex[0U]) {
978 yR_1d = table[bpIdx];
979 } else {
980 yR_1d = (table[bpIdx + 1U] - table[bpIdx]) * fractions[0U] + table[bpIdx];
981 }
982
983 y += (yR_1d - y) * frac;
984 }
985
986 return y;
987}
988
989real_T look1_binlxpw(real_T u0, const real_T bp0[], const real_T table[],
990 uint32_T maxIndex)
991{
992 real_T frac;
993 uint32_T iRght;
994 uint32_T iLeft;
995 uint32_T bpIdx;
996
997 /* Lookup 1-D
998 Search method: 'binary'
999 Use previous index: 'off'
1000 Interpolation method: 'Linear point-slope'
1001 Extrapolation method: 'Linear'
1002 Use last breakpoint for index at or above upper limit: 'off'
1003 Remove protection against out-of-range input in generated code: 'off'
1004 */
1005 /* Prelookup - Index and Fraction
1006 Index Search method: 'binary'
1007 Extrapolation method: 'Linear'
1008 Use previous index: 'off'
1009 Use last breakpoint for index at or above upper limit: 'off'
1010 Remove protection against out-of-range input in generated code: 'off'
1011 */
1012 if (u0 <= bp0[0U]) {
1013 iLeft = 0U;
1014 frac = (u0 - bp0[0U]) / (bp0[1U] - bp0[0U]);
1015 } else if (u0 < bp0[maxIndex]) {
1016 /* Binary Search */
1017 bpIdx = maxIndex >> 1U;
1018 iLeft = 0U;
1019 iRght = maxIndex;
1020 while (iRght - iLeft > 1U) {
1021 if (u0 < bp0[bpIdx]) {
1022 iRght = bpIdx;
1023 } else {
1024 iLeft = bpIdx;
1025 }
1026
1027 bpIdx = (iRght + iLeft) >> 1U;
1028 }
1029
1030 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
1031 } else {
1032 iLeft = maxIndex - 1U;
1033 frac = (u0 - bp0[maxIndex - 1U]) / (bp0[maxIndex] - bp0[maxIndex - 1U]);
1034 }
1035
1036 /* Interpolation 1-D
1037 Interpolation method: 'Linear point-slope'
1038 Use last breakpoint for index at or above upper limit: 'off'
1039 Overflow mode: 'portable wrapping'
1040 */
1041 return (table[iLeft + 1U] - table[iLeft]) * frac + table[iLeft];
1042}
1043
1044/*
1045 * Output and update for atomic system:
1046 * '<S82>/If_Then_Else'
1047 * '<S83>/If_Then_Else'
1048 * '<S83>/If_Then_Else1'
1049 * '<S89>/If_Then_Else'
1050 * '<S89>/If_Then_Else1'
1051 * '<S90>/If_Then_Else'
1052 * '<S90>/If_Then_Else1'
1053 * '<S115>/If_Then_Else'
1054 * '<S118>/If_Then_Else'
1055 * '<S120>/If_Then_Else'
1056 * ...
1057 */
1058void L4_MABX_If_Then_Else(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1059 B_If_Then_Else_L4_MABX_T *localB)
1060{
1061 /* Switch: '<S86>/Switch' */
1062 if (rtu_If) {
1063 localB->Switch = rtu_Then;
1064 } else {
1065 localB->Switch = rtu_Else;
1066 }
1067
1068 /* End of Switch: '<S86>/Switch' */
1069}
1070
1071/*
1072 * System initialize for enable system:
1073 * '<S106>/Calculate_D_term'
1074 * '<S144>/Calculate_D_term'
1075 * '<S238>/Calculate_D_term'
1076 */
1077void L4_MA_Calculate_D_term_Init(B_Calculate_D_term_L4_MABX_T *localB,
1078 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1079{
1080 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay1' */
1081 localDW->Unit_Delay1_DSTATE = localP->Unit_Delay1_InitialCondition;
1082
1083 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay2' */
1084 localDW->Unit_Delay2_DSTATE = localP->Unit_Delay2_InitialCondition;
1085
1086 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay2' */
1087 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1088
1089 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay1' */
1090 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1091
1092 /* SystemInitialize for Outport: '<S110>/GPID_d_term' */
1093 localB->Subtract = localP->GPID_d_term_Y0;
1094}
1095
1096/*
1097 * System reset for enable system:
1098 * '<S106>/Calculate_D_term'
1099 * '<S144>/Calculate_D_term'
1100 * '<S238>/Calculate_D_term'
1101 */
1102void L4_M_Calculate_D_term_Reset(DW_Calculate_D_term_L4_MABX_T *localDW,
1103 P_Calculate_D_term_L4_MABX_T *localP)
1104{
1105 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay1' */
1106 localDW->Unit_Delay1_DSTATE = localP->Unit_Delay1_InitialCondition;
1107
1108 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay2' */
1109 localDW->Unit_Delay2_DSTATE = localP->Unit_Delay2_InitialCondition;
1110
1111 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay2' */
1112 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1113
1114 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay1' */
1115 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1116}
1117
1118/*
1119 * Disable for enable system:
1120 * '<S106>/Calculate_D_term'
1121 * '<S144>/Calculate_D_term'
1122 * '<S238>/Calculate_D_term'
1123 */
1124void L4_Calculate_D_term_Disable(B_Calculate_D_term_L4_MABX_T *localB,
1125 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1126{
1127 /* Disable for Outport: '<S110>/GPID_d_term' */
1128 localB->Subtract = localP->GPID_d_term_Y0;
1129 localDW->Calculate_D_term_MODE = false;
1130}
1131
1132/*
1133 * Start for enable system:
1134 * '<S106>/Calculate_D_term'
1135 * '<S144>/Calculate_D_term'
1136 * '<S238>/Calculate_D_term'
1137 */
1138void L4_M_Calculate_D_term_Start(DW_Calculate_D_term_L4_MABX_T *localDW)
1139{
1140 localDW->Calculate_D_term_MODE = false;
1141}
1142
1143/*
1144 * Outputs for enable system:
1145 * '<S106>/Calculate_D_term'
1146 * '<S144>/Calculate_D_term'
1147 * '<S238>/Calculate_D_term'
1148 */
1149void L4_MABX_Calculate_D_term(boolean_T rtu_Enable, real_T rtu_GPID_Kd, real_T
1150 rtu_GPID_dT, boolean_T rtu_F_GPID_reset_gov, real_T rtu_GPID_control_error,
1151 real_T rtu_GPID_T_filt_d, B_Calculate_D_term_L4_MABX_T *localB,
1152 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1153{
1154 real_T maxV;
1155 real_T u1;
1156 real_T u2;
1157
1158 /* Outputs for Enabled SubSystem: '<S106>/Calculate_D_term' incorporates:
1159 * EnablePort: '<S110>/Enable'
1160 */
1161 if (rtu_Enable) {
1162 if (!localDW->Calculate_D_term_MODE) {
1163 L4_M_Calculate_D_term_Reset(localDW, localP);
1164 localDW->Calculate_D_term_MODE = true;
1165 }
1166
1167 /* UnitDelay: '<S115>/Unit_Delay1' */
1168 localB->Unit_Delay1 = localDW->Unit_Delay1_DSTATE;
1169
1170 /* Logic: '<S115>/Logical Operator' */
1171 localB->LogicalOperator = (rtu_F_GPID_reset_gov || localB->Unit_Delay1);
1172
1173 /* MinMax: '<S115>/MinMax1' */
1174 if ((rtu_GPID_dT > rtu_GPID_T_filt_d) || rtIsNaN(rtu_GPID_T_filt_d)) {
1175 maxV = rtu_GPID_dT;
1176 } else {
1177 maxV = rtu_GPID_T_filt_d;
1178 }
1179
1180 localB->MinMax1 = maxV;
1181
1182 /* End of MinMax: '<S115>/MinMax1' */
1183
1184 /* Saturate: '<S115>/Saturation' */
1185 maxV = localB->MinMax1;
1186 u1 = localP->Saturation_LowerSat;
1187 u2 = localP->Saturation_UpperSat;
1188 if (maxV > u2) {
1189 localB->Saturation = u2;
1190 } else if (maxV < u1) {
1191 localB->Saturation = u1;
1192 } else {
1193 localB->Saturation = maxV;
1194 }
1195
1196 /* End of Saturate: '<S115>/Saturation' */
1197
1198 /* Product: '<S115>/Divide' */
1199 localB->Divide = rtu_GPID_dT / localB->Saturation;
1200
1201 /* Product: '<S115>/Product2' */
1202 localB->Product2 = rtu_GPID_control_error * localB->Divide;
1203
1204 /* Sum: '<S115>/Subtract1' incorporates:
1205 * Constant: '<S115>/Constant1'
1206 */
1207 localB->Subtract1 = localP->Constant1_Value - localB->Divide;
1208
1209 /* UnitDelay: '<S115>/Unit_Delay2' */
1210 localB->Unit_Delay2 = localDW->Unit_Delay2_DSTATE;
1211
1212 /* Product: '<S115>/Product1' */
1213 localB->Product1 = localB->Subtract1 * localB->Unit_Delay2;
1214
1215 /* Sum: '<S115>/Add1' */
1216 localB->Add1 = localB->Product2 + localB->Product1;
1217
1218 /* Outputs for Atomic SubSystem: '<S115>/If_Then_Else' */
1219 L4_MABX_If_Then_Else(localB->LogicalOperator, rtu_GPID_control_error,
1220 localB->Add1, &localB->If_Then_Else);
1221
1222 /* End of Outputs for SubSystem: '<S115>/If_Then_Else' */
1223
1224 /* Product: '<S110>/Divide' */
1225 localB->Divide_k = localB->If_Then_Else.Switch / rtu_GPID_dT * rtu_GPID_Kd;
1226
1227 /* UnitDelay: '<S116>/FixPt Unit Delay2' */
1228 localB->FixPtUnitDelay2 = localDW->FixPtUnitDelay2_DSTATE;
1229
1230 /* Logic: '<S116>/FixPt Logical Operator' */
1231 localB->FixPtLogicalOperator = (uint8_T)(rtu_F_GPID_reset_gov ||
1232 (localB->FixPtUnitDelay2 != 0));
1233
1234 /* UnitDelay: '<S116>/FixPt Unit Delay1' */
1235 localB->Xold = localDW->FixPtUnitDelay1_DSTATE;
1236
1237 /* Switch: '<S116>/Init' */
1238 if (localB->FixPtLogicalOperator != 0) {
1239 localB->Init = localB->Divide_k;
1240 } else {
1241 localB->Init = localB->Xold;
1242 }
1243
1244 /* End of Switch: '<S116>/Init' */
1245
1246 /* Sum: '<S110>/Subtract' */
1247 localB->Subtract = localB->Divide_k - localB->Init;
1248
1249 /* Switch: '<S116>/Reset' */
1250 localB->Xnew = localB->Divide_k;
1251 } else {
1252 if (localDW->Calculate_D_term_MODE) {
1253 L4_Calculate_D_term_Disable(localB, localDW, localP);
1254 }
1255 }
1256
1257 /* End of Outputs for SubSystem: '<S106>/Calculate_D_term' */
1258}
1259
1260/*
1261 * Update for enable system:
1262 * '<S106>/Calculate_D_term'
1263 * '<S144>/Calculate_D_term'
1264 * '<S238>/Calculate_D_term'
1265 */
1266void L4__Calculate_D_term_Update(B_Calculate_D_term_L4_MABX_T *localB,
1267 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1268{
1269 /* Update for Enabled SubSystem: '<S106>/Calculate_D_term' incorporates:
1270 * EnablePort: '<S110>/Enable'
1271 */
1272 if (localDW->Calculate_D_term_MODE) {
1273 /* Update for UnitDelay: '<S115>/Unit_Delay1' incorporates:
1274 * Constant: '<S115>/Constant'
1275 */
1276 localDW->Unit_Delay1_DSTATE = localP->Constant_Value;
1277
1278 /* Update for UnitDelay: '<S115>/Unit_Delay2' */
1279 localDW->Unit_Delay2_DSTATE = localB->If_Then_Else.Switch;
1280
1281 /* Update for UnitDelay: '<S116>/FixPt Unit Delay2' incorporates:
1282 * Constant: '<S116>/FixPt Constant'
1283 */
1284 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtConstant_Value;
1285
1286 /* Update for UnitDelay: '<S116>/FixPt Unit Delay1' */
1287 localDW->FixPtUnitDelay1_DSTATE = localB->Xnew;
1288 }
1289
1290 /* End of Update for SubSystem: '<S106>/Calculate_D_term' */
1291}
1292
1293/*
1294 * Output and update for atomic system:
1295 * '<S120>/If_Then_Else3'
1296 * '<S158>/If_Then_Else3'
1297 * '<S252>/If_Then_Else3'
1298 * '<S461>/If_Then_Else'
1299 * '<S1062>/If_Then_Else'
1300 */
1301void L4_MABX_If_Then_Else3(boolean_T rtu_If, boolean_T rtu_Then, boolean_T
1302 rtu_Else, B_If_Then_Else_L4_MABX_c_T *localB)
1303{
1304 /* Switch: '<S128>/Switch' */
1305 if (rtu_If) {
1306 localB->Switch = rtu_Then;
1307 } else {
1308 localB->Switch = rtu_Else;
1309 }
1310
1311 /* End of Switch: '<S128>/Switch' */
1312}
1313
1314/*
1315 * System initialize for enable system:
1316 * '<S106>/Calculate_I_term'
1317 * '<S144>/Calculate_I_term'
1318 * '<S238>/Calculate_I_term'
1319 */
1320void L4_MA_Calculate_I_term_Init(B_Calculate_I_term_L4_MABX_T *localB,
1321 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1322{
1323 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay2' */
1324 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1325
1326 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay1' */
1327 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1328
1329 /* InitializeConditions for UnitDelay: '<S111>/Unit_Delay' */
1330 localDW->Unit_Delay_DSTATE = localP->Unit_Delay_InitialCondition;
1331
1332 /* SystemInitialize for Enabled SubSystem: '<S111>/Initialize_integral_term' */
1333 /* SystemInitialize for Outport: '<S119>/GPID_i_sum_error_init' */
1334 localB->Subtract2 = localP->GPID_i_sum_error_init_Y0;
1335
1336 /* End of SystemInitialize for SubSystem: '<S111>/Initialize_integral_term' */
1337
1338 /* SystemInitialize for Outport: '<S111>/GPID_i_term' */
1339 localB->If_Then_Else.Switch = localP->GPID_i_term_Y0;
1340
1341 /* SystemInitialize for Outport: '<S111>/F_GPID_hold_i_term' */
1342 localB->LogicalOperator2 = localP->F_GPID_hold_i_term_Y0;
1343}
1344
1345/*
1346 * System reset for enable system:
1347 * '<S106>/Calculate_I_term'
1348 * '<S144>/Calculate_I_term'
1349 * '<S238>/Calculate_I_term'
1350 */
1351void L4_M_Calculate_I_term_Reset(DW_Calculate_I_term_L4_MABX_T *localDW,
1352 P_Calculate_I_term_L4_MABX_T *localP)
1353{
1354 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay2' */
1355 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1356
1357 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay1' */
1358 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1359
1360 /* InitializeConditions for UnitDelay: '<S111>/Unit_Delay' */
1361 localDW->Unit_Delay_DSTATE = localP->Unit_Delay_InitialCondition;
1362}
1363
1364/*
1365 * Disable for enable system:
1366 * '<S106>/Calculate_I_term'
1367 * '<S144>/Calculate_I_term'
1368 * '<S238>/Calculate_I_term'
1369 */
1370void L4_Calculate_I_term_Disable(B_Calculate_I_term_L4_MABX_T *localB,
1371 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1372{
1373 /* Disable for Outport: '<S111>/GPID_i_term' */
1374 localB->If_Then_Else.Switch = localP->GPID_i_term_Y0;
1375
1376 /* Disable for Outport: '<S111>/F_GPID_hold_i_term' */
1377 localB->LogicalOperator2 = localP->F_GPID_hold_i_term_Y0;
1378 localDW->Calculate_I_term_MODE = false;
1379}
1380
1381/*
1382 * Start for enable system:
1383 * '<S106>/Calculate_I_term'
1384 * '<S144>/Calculate_I_term'
1385 * '<S238>/Calculate_I_term'
1386 */
1387void L4_M_Calculate_I_term_Start(DW_Calculate_I_term_L4_MABX_T *localDW)
1388{
1389 localDW->Calculate_I_term_MODE = false;
1390}
1391
1392/*
1393 * Outputs for enable system:
1394 * '<S106>/Calculate_I_term'
1395 * '<S144>/Calculate_I_term'
1396 * '<S238>/Calculate_I_term'
1397 */
1398void L4_MABX_Calculate_I_term(boolean_T rtu_Enable, real_T rtu_GPID_p_term,
1399 real_T rtu_GPID_Ki, real_T rtu_GPID_actual_system_output, real_T
1400 rtu_GPID_control_error, boolean_T rtu_F_GPID_reset_gov, real_T rtu_GPID_dT,
1401 real_T rtu_GPID_feed_forward, boolean_T rtu_F_GPID_aw_cond_integration, real_T
1402 rtu_GPID_aw_hysteresis, boolean_T rtu_F_GPID_aw_hold_i_term, real_T
1403 rtu_GPID_output_unlim_prev, B_Calculate_I_term_L4_MABX_T *localB,
1404 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1405{
1406 /* Outputs for Enabled SubSystem: '<S106>/Calculate_I_term' incorporates:
1407 * EnablePort: '<S111>/Enable'
1408 */
1409 if (rtu_Enable) {
1410 if (!localDW->Calculate_I_term_MODE) {
1411 L4_M_Calculate_I_term_Reset(localDW, localP);
1412 localDW->Calculate_I_term_MODE = true;
1413 }
1414
1415 /* Outputs for Enabled SubSystem: '<S111>/Initialize_integral_term' incorporates:
1416 * EnablePort: '<S119>/Enable'
1417 */
1418 if (rtu_F_GPID_reset_gov) {
1419 /* Product: '<S119>/Product' */
1420 localB->Product_j = rtu_GPID_Ki * rtu_GPID_dT * rtu_GPID_control_error;
1421
1422 /* Sum: '<S119>/Subtract' */
1423 localB->Subtract_g = rtu_GPID_actual_system_output - rtu_GPID_feed_forward;
1424
1425 /* Sum: '<S119>/Subtract1' */
1426 localB->Subtract1_k = localB->Subtract_g - rtu_GPID_p_term;
1427
1428 /* Sum: '<S119>/Subtract2' */
1429 localB->Subtract2 = localB->Subtract1_k - localB->Product_j;
1430 }
1431
1432 /* End of Outputs for SubSystem: '<S111>/Initialize_integral_term' */
1433
1434 /* UnitDelay: '<S122>/FixPt Unit Delay2' */
1435 localB->FixPtUnitDelay2 = localDW->FixPtUnitDelay2_DSTATE;
1436
1437 /* Logic: '<S122>/FixPt Logical Operator' */
1438 localB->FixPtLogicalOperator = (uint8_T)(rtu_F_GPID_reset_gov ||
1439 (localB->FixPtUnitDelay2 != 0));
1440
1441 /* UnitDelay: '<S122>/FixPt Unit Delay1' */
1442 localB->Xold = localDW->FixPtUnitDelay1_DSTATE;
1443
1444 /* Switch: '<S122>/Init' */
1445 if (localB->FixPtLogicalOperator != 0) {
1446 localB->Init = localB->Subtract2;
1447 } else {
1448 localB->Init = localB->Xold;
1449 }
1450
1451 /* End of Switch: '<S122>/Init' */
1452
1453 /* Product: '<S118>/Product1' */
1454 localB->Product1 = rtu_GPID_Ki * rtu_GPID_control_error * rtu_GPID_dT;
1455
1456 /* Sum: '<S118>/Add' */
1457 localB->Add = localB->Init + localB->Product1;
1458
1459 /* UnitDelay: '<S111>/Unit_Delay' */
1460 localB->Unit_Delay = localDW->Unit_Delay_DSTATE;
1461
1462 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else' */
1463
1464 /* Constant: '<S120>/Constant' */
1465 L4_MABX_If_Then_Else(rtu_F_GPID_reset_gov, localP->Constant_Value,
1466 localB->Unit_Delay, &localB->If_Then_Else_c);
1467
1468 /* End of Outputs for SubSystem: '<S120>/If_Then_Else' */
1469
1470 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else2' */
1471 L4_MABX_If_Then_Else(rtu_F_GPID_reset_gov, rtu_GPID_actual_system_output,
1472 rtu_GPID_output_unlim_prev, &localB->If_Then_Else2);
1473
1474 /* End of Outputs for SubSystem: '<S120>/If_Then_Else2' */
1475
1476 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else1' */
1477 L4_MABX_If_Then_Else(rtu_F_GPID_aw_cond_integration,
1478 localB->If_Then_Else_c.Switch,
1479 localB->If_Then_Else2.Switch, &localB->If_Then_Else1);
1480
1481 /* End of Outputs for SubSystem: '<S120>/If_Then_Else1' */
1482
1483 /* Product: '<S120>/Product' */
1484 localB->Product = rtu_GPID_Ki * rtu_GPID_control_error *
1485 localB->If_Then_Else1.Switch;
1486
1487 /* RelationalOperator: '<S123>/Compare' incorporates:
1488 * Constant: '<S123>/Constant'
1489 */
1490 localB->Compare = (localB->Product > localP->Constant_Value_p);
1491
1492 /* RelationalOperator: '<S124>/Compare' incorporates:
1493 * Constant: '<S124>/Constant'
1494 */
1495 localB->Compare_n = (localB->Unit_Delay >= localP->Constant_Value_b);
1496
1497 /* Sum: '<S120>/Subtract' */
1498 localB->Subtract = localB->If_Then_Else2.Switch -
1499 rtu_GPID_actual_system_output;
1500
1501 /* RelationalOperator: '<S120>/Relational Operator1' */
1502 localB->RelationalOperator1 = (localB->Subtract > rtu_GPID_aw_hysteresis);
1503
1504 /* Sum: '<S120>/Subtract1' */
1505 localB->Subtract1 = rtu_GPID_actual_system_output -
1506 localB->If_Then_Else2.Switch;
1507
1508 /* RelationalOperator: '<S120>/Relational Operator2' */
1509 localB->RelationalOperator2 = (localB->Subtract1 > rtu_GPID_aw_hysteresis);
1510
1511 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else3' */
1512 L4_MABX_If_Then_Else3(localB->Compare_n, localB->RelationalOperator1,
1513 localB->RelationalOperator2, &localB->If_Then_Else3);
1514
1515 /* End of Outputs for SubSystem: '<S120>/If_Then_Else3' */
1516
1517 /* Logic: '<S120>/Logical Operator1' */
1518 localB->LogicalOperator1 = (localB->Compare && localB->If_Then_Else3.Switch);
1519
1520 /* Logic: '<S120>/Logical Operator2' */
1521 localB->LogicalOperator2 = (localB->LogicalOperator1 ||
1522 rtu_F_GPID_aw_hold_i_term);
1523
1524 /* Outputs for Atomic SubSystem: '<S118>/If_Then_Else' */
1525 L4_MABX_If_Then_Else(localB->LogicalOperator2, localB->Init, localB->Add,
1526 &localB->If_Then_Else);
1527
1528 /* End of Outputs for SubSystem: '<S118>/If_Then_Else' */
1529
1530 /* Switch: '<S122>/Reset' */
1531 if (rtu_F_GPID_reset_gov) {
1532 localB->Xnew = localB->Subtract2;
1533 } else {
1534 localB->Xnew = localB->If_Then_Else.Switch;
1535 }
1536
1537 /* End of Switch: '<S122>/Reset' */
1538 } else {
1539 if (localDW->Calculate_I_term_MODE) {
1540 L4_Calculate_I_term_Disable(localB, localDW, localP);
1541 }
1542 }
1543
1544 /* End of Outputs for SubSystem: '<S106>/Calculate_I_term' */
1545}
1546
1547/*
1548 * Update for enable system:
1549 * '<S106>/Calculate_I_term'
1550 * '<S144>/Calculate_I_term'
1551 * '<S238>/Calculate_I_term'
1552 */
1553void L4__Calculate_I_term_Update(B_Calculate_I_term_L4_MABX_T *localB,
1554 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1555{
1556 /* Update for Enabled SubSystem: '<S106>/Calculate_I_term' incorporates:
1557 * EnablePort: '<S111>/Enable'
1558 */
1559 if (localDW->Calculate_I_term_MODE) {
1560 /* Update for UnitDelay: '<S122>/FixPt Unit Delay2' incorporates:
1561 * Constant: '<S122>/FixPt Constant'
1562 */
1563 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtConstant_Value;
1564
1565 /* Update for UnitDelay: '<S122>/FixPt Unit Delay1' */
1566 localDW->FixPtUnitDelay1_DSTATE = localB->Xnew;
1567
1568 /* Update for UnitDelay: '<S111>/Unit_Delay' */
1569 localDW->Unit_Delay_DSTATE = localB->If_Then_Else.Switch;
1570 }
1571
1572 /* End of Update for SubSystem: '<S106>/Calculate_I_term' */
1573}
1574
1575/* Output and update for atomic system: '<S98>/If_Then_Else' */
1576void L4_MABX_If_Then_Else_l(boolean_T rtu_If, boolean_T rtu_Then, boolean_T
1577 rtu_Else, B_If_Then_Else_L4_MABX_m_T *localB)
1578{
1579 /* Switch: '<S176>/Switch' */
1580 if (rtu_If) {
1581 localB->Switch = rtu_Then;
1582 } else {
1583 localB->Switch = rtu_Else;
1584 }
1585
1586 /* End of Switch: '<S176>/Switch' */
1587}
1588
1589/*
1590 * Output and update for atomic system:
1591 * '<S177>/If_Then_Else'
1592 * '<S177>/If_Then_Else1'
1593 * '<S178>/If_Then_Else'
1594 * '<S178>/If_Then_Else1'
1595 * '<S274>/If_Then_Else'
1596 * '<S275>/If_Then_Else'
1597 * '<S275>/If_Then_Else1'
1598 * '<S354>/If_Then_Else'
1599 * '<S351>/If_Then_Else'
1600 * '<S360>/If_Then_Else'
1601 * ...
1602 */
1603void L4_MABX_If_Then_Else_g(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1604 B_If_Then_Else_L4_MABX_k_T *localB)
1605{
1606 /* Switch: '<S179>/Switch' */
1607 if (rtu_If) {
1608 localB->Switch = rtu_Then;
1609 } else {
1610 localB->Switch = rtu_Else;
1611 }
1612
1613 /* End of Switch: '<S179>/Switch' */
1614}
1615
1616/* Output and update for atomic system: '<S304>/If_Then_Else' */
1617void L4_MABX_If_Then_Else_c(real_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1618 B_If_Then_Else_L4_MABX_mf_T *localB)
1619{
1620 /* Switch: '<S314>/Switch' */
1621 if (rtu_If != 0.0) {
1622 localB->Switch = rtu_Then;
1623 } else {
1624 localB->Switch = rtu_Else;
1625 }
1626
1627 /* End of Switch: '<S314>/Switch' */
1628}
1629
1630/* Output and update for atomic system: '<S344>/If_Then_Else' */
1631void L4_MABX_If_Then_Else_m(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Then_l,
1632 real_T rtu_Then_f, real_T rtu_Else, real_T rtu_Else_i, real_T rtu_Else_k,
1633 B_If_Then_Else_L4_MABX_h_T *localB)
1634{
1635 /* Switch: '<S346>/Switch' */
1636 if (rtu_If) {
1637 localB->Vehicle_speed_target = rtu_Then;
1638 localB->Vehicle_speed = rtu_Then_l;
1639 localB->Distance_m = rtu_Then_f;
1640 } else {
1641 localB->Vehicle_speed_target = rtu_Else;
1642 localB->Vehicle_speed = rtu_Else_i;
1643 localB->Distance_m = rtu_Else_k;
1644 }
1645
1646 /* End of Switch: '<S346>/Switch' */
1647}
1648
1649/* System initialize for function-call system: '<S393>/Background_Task' */
1650void L4_MAB_Background_Task_Init(void)
1651{
1652 /* InitializeConditions for S-Function (dsa_tcpip_bkg_sfcn): '<S404>/dsa_tcpip_bkg_sfcn' */
1653 /* Level2 S-Function Block: '<S404>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1654 {
1655 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1656 sfcnInitializeConditions(rts);
1657 if (ssGetErrorStatus(rts) != (NULL))
1658 return;
1659 }
1660}
1661
1662/* System reset for function-call system: '<S393>/Background_Task' */
1663void L4_MA_Background_Task_Reset(void)
1664{
1665 /* InitializeConditions for S-Function (dsa_tcpip_bkg_sfcn): '<S404>/dsa_tcpip_bkg_sfcn' */
1666 /* Level2 S-Function Block: '<S404>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1667 {
1668 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1669 sfcnInitializeConditions(rts);
1670 if (ssGetErrorStatus(rts) != (NULL))
1671 return;
1672 }
1673}
1674
1675/* Start for function-call system: '<S393>/Background_Task' */
1676void L4_MA_Background_Task_Start(void)
1677{
1678 /* Start for S-Function (dsa_tcpip_bkg_sfcn): '<S404>/dsa_tcpip_bkg_sfcn' */
1679 /* Level2 S-Function Block: '<S404>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1680 {
1681 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1682 sfcnStart(rts);
1683 if (ssGetErrorStatus(rts) != (NULL))
1684 return;
1685 }
1686}
1687
1688/* Output and update for function-call system: '<S393>/Background_Task' */
1689void L4_MABX_Background_Task(void)
1690{
1691 /* S-Function (dsa_tcpip_bkg_sfcn): '<S404>/dsa_tcpip_bkg_sfcn' */
1692
1693 /* Level2 S-Function Block: '<S404>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1694 {
1695 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1696 sfcnOutputs(rts,9);
1697 }
1698}
1699
1700/* Termination for function-call system: '<S393>/Background_Task' */
1701void L4_MAB_Background_Task_Term(void)
1702{
1703 /* Terminate for S-Function (dsa_tcpip_bkg_sfcn): '<S404>/dsa_tcpip_bkg_sfcn' */
1704 /* Level2 S-Function Block: '<S404>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1705 {
1706 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1707 sfcnTerminate(rts);
1708 }
1709}
1710
1711/* System initialize for function-call system: '<S393>/IRQ_Level_2_SW_INT' */
1712void L4__IRQ_Level_2_SW_INT_Init(void)
1713{
1714 /* InitializeConditions for S-Function (dsa_tcpip_irq_l2_sfcn): '<S405>/dsa_tcpip_irq_l2_sfcn' */
1715 /* Level2 S-Function Block: '<S405>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1716 {
1717 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1718 sfcnInitializeConditions(rts);
1719 if (ssGetErrorStatus(rts) != (NULL))
1720 return;
1721 }
1722}
1723
1724/* System reset for function-call system: '<S393>/IRQ_Level_2_SW_INT' */
1725void L4_IRQ_Level_2_SW_INT_Reset(void)
1726{
1727 /* InitializeConditions for S-Function (dsa_tcpip_irq_l2_sfcn): '<S405>/dsa_tcpip_irq_l2_sfcn' */
1728 /* Level2 S-Function Block: '<S405>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1729 {
1730 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1731 sfcnInitializeConditions(rts);
1732 if (ssGetErrorStatus(rts) != (NULL))
1733 return;
1734 }
1735}
1736
1737/* Start for function-call system: '<S393>/IRQ_Level_2_SW_INT' */
1738void L4_IRQ_Level_2_SW_INT_Start(void)
1739{
1740 /* Start for S-Function (dsa_tcpip_irq_l2_sfcn): '<S405>/dsa_tcpip_irq_l2_sfcn' */
1741 /* Level2 S-Function Block: '<S405>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1742 {
1743 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1744 sfcnStart(rts);
1745 if (ssGetErrorStatus(rts) != (NULL))
1746 return;
1747 }
1748}
1749
1750/* Output and update for function-call system: '<S393>/IRQ_Level_2_SW_INT' */
1751void L4_MABX_IRQ_Level_2_SW_INT(void)
1752{
1753 /* S-Function (dsa_tcpip_irq_l2_sfcn): '<S405>/dsa_tcpip_irq_l2_sfcn' */
1754
1755 /* Level2 S-Function Block: '<S405>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1756 {
1757 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1758 sfcnOutputs(rts,10);
1759 }
1760}
1761
1762/* Termination for function-call system: '<S393>/IRQ_Level_2_SW_INT' */
1763void L4__IRQ_Level_2_SW_INT_Term(void)
1764{
1765 /* Terminate for S-Function (dsa_tcpip_irq_l2_sfcn): '<S405>/dsa_tcpip_irq_l2_sfcn' */
1766 /* Level2 S-Function Block: '<S405>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1767 {
1768 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1769 sfcnTerminate(rts);
1770 }
1771}
1772
1773/* System initialize for function-call system: '<S406>/Tcp Input Processing' */
1774void L4__TcpInputProcessing_Init(void)
1775{
1776 /* SystemInitialize for S-Function (rti_commonblock): '<S408>/S-Function1' incorporates:
1777 * SubSystem: '<S393>/IRQ_Level_2_SW_INT'
1778 */
1779 L4__IRQ_Level_2_SW_INT_Init();
1780
1781 /* End of SystemInitialize for S-Function (rti_commonblock): '<S408>/S-Function1' */
1782}
1783
1784/* System reset for function-call system: '<S406>/Tcp Input Processing' */
1785void L4_TcpInputProcessing_Reset(void)
1786{
1787 /* SystemReset for S-Function (rti_commonblock): '<S408>/S-Function1' incorporates:
1788 * SubSystem: '<S393>/IRQ_Level_2_SW_INT'
1789 */
1790 L4_IRQ_Level_2_SW_INT_Reset();
1791
1792 /* End of SystemReset for S-Function (rti_commonblock): '<S408>/S-Function1' */
1793}
1794
1795/* Start for function-call system: '<S406>/Tcp Input Processing' */
1796void L4_TcpInputProcessing_Start(void)
1797{
1798 /* Start for S-Function (rti_commonblock): '<S408>/S-Function1' incorporates:
1799 * SubSystem: '<S393>/IRQ_Level_2_SW_INT'
1800 */
1801 L4_IRQ_Level_2_SW_INT_Start();
1802
1803 /* End of Start for S-Function (rti_commonblock): '<S408>/S-Function1' */
1804}
1805
1806/* Output and update for function-call system: '<S406>/Tcp Input Processing' */
1807void L4_MABX_TcpInputProcessing(void)
1808{
1809 /* S-Function (rti_commonblock): '<S408>/S-Function1' */
1810
1811 /* This comment workarounds a code generation problem */
1812
1813 /* dSPACE Software Interrupt Block: <S406>/Tcp Input Processing */
1814 rtk_schedule_task(S_SOFTTASK,0);
1815
1816 /* End of Outputs for S-Function (rti_commonblock): '<S408>/S-Function1' */
1817}
1818
1819/*
1820 * Forced non-inlined (FNI) function call stub
1821 * for '<S406>/Tcp Input Processing'
1822 */
1823boolean_T L4_MABX_TcpInputProcessingFNI(RT_MODEL_L4_MABX_T *const L4_MABX_M,
1824 int_T controlPortIdx, int_T tid)
1825{
1826 L4_MABX_TcpInputProcessing();
1827 UNUSED_PARAMETER(L4_MABX_M);
1828 UNUSED_PARAMETER(controlPortIdx);
1829 UNUSED_PARAMETER(tid);
1830 return (1);
1831}
1832
1833/*
1834 * Forced non-inlined (FNI) function call stub
1835 * for '<S406>/Tcp Input Processing'
1836 */
1837boolean_T L4_TcpInputProcessing_ResetFNI(RT_MODEL_L4_MABX_T *const L4_MABX_M,
1838 int_T controlPortIdx, int_T tid)
1839{
1840 UNUSED_PARAMETER(L4_MABX_M);
1841 UNUSED_PARAMETER(controlPortIdx);
1842 UNUSED_PARAMETER(tid);
1843 return (1);
1844}
1845
1846/* Termination for function-call system: '<S406>/Tcp Input Processing' */
1847void L4__TcpInputProcessing_Term(void)
1848{
1849 /* Terminate for S-Function (rti_commonblock): '<S408>/S-Function1' incorporates:
1850 * SubSystem: '<S393>/IRQ_Level_2_SW_INT'
1851 */
1852 L4__IRQ_Level_2_SW_INT_Term();
1853
1854 /* End of Terminate for S-Function (rti_commonblock): '<S408>/S-Function1' */
1855}
1856
1857/* System initialize for function-call system: '<S393>/Interrupt_Task' */
1858void L4_MABX_Interrupt_Task_Init(void)
1859{
1860 /* InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1861
1862 /* Level2 S-Function Block: '<S406>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1863 {
1864 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1865 sfcnInitializeConditions(rts);
1866 if (ssGetErrorStatus(rts) != (NULL))
1867 return;
1868 }
1869
1870 /* End of InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1871
1872 /* SystemInitialize for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' incorporates:
1873 * SubSystem: '<S406>/Tcp Input Processing'
1874 */
1875 L4__TcpInputProcessing_Init();
1876
1877 /* End of SystemInitialize for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1878}
1879
1880/* System reset for function-call system: '<S393>/Interrupt_Task' */
1881void L4_MAB_Interrupt_Task_Reset(void)
1882{
1883 /* InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1884
1885 /* Level2 S-Function Block: '<S406>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1886 {
1887 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1888 sfcnInitializeConditions(rts);
1889 if (ssGetErrorStatus(rts) != (NULL))
1890 return;
1891 }
1892
1893 /* End of InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1894
1895 /* SystemReset for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' incorporates:
1896 * SubSystem: '<S406>/Tcp Input Processing'
1897 */
1898 L4_TcpInputProcessing_Reset();
1899
1900 /* End of SystemReset for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1901}
1902
1903/* Start for function-call system: '<S393>/Interrupt_Task' */
1904void L4_MAB_Interrupt_Task_Start(void)
1905{
1906 /* Start for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' incorporates:
1907 * SubSystem: '<S406>/Tcp Input Processing'
1908 */
1909 L4_TcpInputProcessing_Start();
1910
1911 /* Level2 S-Function Block: '<S406>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1912 {
1913 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1914 sfcnStart(rts);
1915 if (ssGetErrorStatus(rts) != (NULL))
1916 return;
1917 }
1918
1919 /* End of Start for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1920}
1921
1922/* Output and update for function-call system: '<S393>/Interrupt_Task' */
1923void L4_MABX_Interrupt_Task(void)
1924{
1925 /* S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1926
1927 /* Level2 S-Function Block: '<S406>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1928 {
1929 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1930 sfcnOutputs(rts,11);
1931 }
1932
1933 /* End of Outputs for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1934}
1935
1936/* Termination for function-call system: '<S393>/Interrupt_Task' */
1937void L4_MABX_Interrupt_Task_Term(void)
1938{
1939 /* Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1940
1941 /* Level2 S-Function Block: '<S406>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1942 {
1943 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1944 sfcnTerminate(rts);
1945 }
1946
1947 /* End of Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1948
1949 /* Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' incorporates:
1950 * SubSystem: '<S406>/Tcp Input Processing'
1951 */
1952 L4__TcpInputProcessing_Term();
1953
1954 /* End of Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1955}
1956
1957/* Output and update for atomic system: '<S737>/If_Then_Else' */
1958void L4_MABX_If_Then_Else_gn(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else)
1959{
1960 /* Switch: '<S750>/Switch' */
1961 if (rtu_If) {
1962 Pedal_pwm_position = rtu_Then;
1963 } else {
1964 Pedal_pwm_position = rtu_Else;
1965 }
1966
1967 /* End of Switch: '<S750>/Switch' */
1968}
1969
1970/* System initialize for function-call system: '<S412>/IncrementTimer' */
1971void L4_MABX_IncrementTimer_Init(void)
1972{
1973 /* InitializeConditions for UnitDelay: '<S832>/Unit_Delay' */
1974 L4_MABX_DW.Unit_Delay_DSTATE_b = L4_MABX_P.Unit_Delay_InitialCondition_c0t;
1975
1976 /* SystemInitialize for Outport: '<S832>/Out1' */
1977 L4_MABX_B.Add = L4_MABX_P.Out1_Y0_i;
1978}
1979
1980/* System reset for function-call system: '<S412>/IncrementTimer' */
1981void L4_MAB_IncrementTimer_Reset(void)
1982{
1983 /* InitializeConditions for UnitDelay: '<S832>/Unit_Delay' */
1984 L4_MABX_DW.Unit_Delay_DSTATE_b = L4_MABX_P.Unit_Delay_InitialCondition_c0t;
1985}
1986
1987/* Output and update for function-call system: '<S412>/IncrementTimer' */
1988void L4_MABX_IncrementTimer(void)
1989{
1990 /* UnitDelay: '<S832>/Unit_Delay' */
1991 L4_MABX_B.Unit_Delay_p = L4_MABX_DW.Unit_Delay_DSTATE_b;
1992
1993 /* Sum: '<S832>/Add' incorporates:
1994 * Constant: '<S832>/Constant1'
1995 */
1996 L4_MABX_B.Add = L4_MABX_P.Constant1_Value_or + L4_MABX_B.Unit_Delay_p;
1997
1998 /* Update for UnitDelay: '<S832>/Unit_Delay' */
1999 L4_MABX_DW.Unit_Delay_DSTATE_b = L4_MABX_B.Add;
2000}
2001
2002/*
2003 * Output and update for enable system:
2004 * '<S962>/ALL_CTRL_DISABLED'
2005 * '<S962>/DEFAULT_TRQ_CTRL_MODE'
2006 * '<S962>/EXT_TRQ_CTRL_MODE_A'
2007 * '<S962>/EXT_TRQ_CTRL_MODE_B'
2008 * '<S962>/EXT_TRQ_CTRL_MODE_C'
2009 */
2010void L4_MABX_ALL_CTRL_DISABLED(boolean_T rtu_Enable, int32_T *rty_Out1,
2011 P_ALL_CTRL_DISABLED_L4_MABX_T *localP)
2012{
2013 /* Outputs for Enabled SubSystem: '<S962>/ALL_CTRL_DISABLED' incorporates:
2014 * EnablePort: '<S977>/Enable'
2015 */
2016 if (rtu_Enable) {
2017 /* SignalConversion: '<S977>/OutportBufferForOut1' incorporates:
2018 * Constant: '<S977>/Constant'
2019 */
2020 *rty_Out1 = localP->Constant_Value;
2021 }
2022
2023 /* End of Outputs for SubSystem: '<S962>/ALL_CTRL_DISABLED' */
2024}
2025
2026/* Output and update for atomic system: '<S1000>/If_Then_Else' */
2027void L4_MABX_If_Then_Else_n(boolean_T rtu_If, real_T rtu_Then,
2028 ENUM_XBR_EBI_MODE_T rtu_Then_m, ENUM_XBR_PRIORITY_T rtu_Then_f,
2029 ENUM_XBR_CONTROL_MODE_T rtu_Then_h, ENUM_XBR_PASS_THROUGH_ACTIVE_T rtu_Then_ff,
2030 real_T rtu_Then_hn, real_T rtu_Then_hy, real_T rtu_Else, ENUM_XBR_EBI_MODE_T
2031 rtu_Else_h, ENUM_XBR_PRIORITY_T rtu_Else_b, ENUM_XBR_CONTROL_MODE_T rtu_Else_i,
2032 ENUM_XBR_PASS_THROUGH_ACTIVE_T rtu_Else_hy, real_T rtu_Else_i0, real_T
2033 rtu_Else_p, B_If_Then_Else_L4_MABX_j_T *localB)
2034{
2035 /* Switch: '<S1024>/Switch' */
2036 if (rtu_If) {
2037 localB->XBRExternalAccelDemand = rtu_Then;
2038 localB->XBREnduranceBrakeIntegrationMod = rtu_Then_m;
2039 localB->XBRPriority = rtu_Then_f;
2040 localB->XBRControlMode = rtu_Then_h;
2041 localB->XBRPassThroughActive = rtu_Then_ff;
2042 localB->XBRUrgency = rtu_Then_hn;
2043 localB->XBRPassThroughEnabled = rtu_Then_hy;
2044 } else {
2045 localB->XBRExternalAccelDemand = rtu_Else;
2046 localB->XBREnduranceBrakeIntegrationMod = rtu_Else_h;
2047 localB->XBRPriority = rtu_Else_b;
2048 localB->XBRControlMode = rtu_Else_i;
2049 localB->XBRPassThroughActive = rtu_Else_hy;
2050 localB->XBRUrgency = rtu_Else_i0;
2051 localB->XBRPassThroughEnabled = rtu_Else_p;
2052 }
2053
2054 /* End of Switch: '<S1024>/Switch' */
2055}
2056
2057static int32_T safe_cast_to_ENUM_XPR_CONTROL_M(int32_T input)
2058{
2059 int32_T y;
2060
2061 /* Initialize output value to default value for ENUM_XPR_CONTROL_MODE_T (NO_BRAKE_DEMAND) */
2062 y = 0;
2063 if (((input >= 0) && (input <= 3)) || ((input >= 13) && (input <= 15))) {
2064 /* Set output value to input value if it is a member of ENUM_XPR_CONTROL_MODE_T */
2065 y = input;
2066 }
2067
2068 return y;
2069}
2070
2071static int32_T safe_cast_to_ENUM_XPR_ERROR_STA(int32_T input)
2072{
2073 int32_T y;
2074
2075 /* Initialize output value to default value for ENUM_XPR_ERROR_STATE_T (XPR_OK) */
2076 y = 0;
2077 if ((input >= 0) && (input <= 3)) {
2078 /* Set output value to input value if it is a member of ENUM_XPR_ERROR_STATE_T */
2079 y = input;
2080 }
2081
2082 return y;
2083}
2084
2085/* Function for Chart: '<S205>/Relay_control_state_machine' */
2086static void L4_MABX_enter_atomic_INITIAL(void)
2087{
2088 /* Entry 'INITIAL': '<S212>:12' */
2089 L4_MABX_B.F_Ignition_relay_command_i = false;
2090 L4_MABX_B.F_Inverter_relay_command_p = false;
2091 L4_MABX_B.F_MABX_relay_command_n = false;
2092 L4_MABX_B.F_Sensor_relay_command_k = false;
2093 L4_MABX_DW.IGN_RELAY_ON_DELAY_SECS_APV =
2094 L4_MABX_B.TmpSignalConversionAtSFunctionI[0];
2095 L4_MABX_DW.INVERTER_RELAY_ON_DELAY_SECS_AP =
2096 L4_MABX_B.TmpSignalConversionAtSFunctionI[1];
2097 L4_MABX_DW.MABX_RELAY_ON_DELAY_SECS_APV =
2098 L4_MABX_B.TmpSignalConversionAtSFunctionI[2];
2099 L4_MABX_DW.SENSOR_RELAY_ON_DELAY_SECS_APV =
2100 L4_MABX_B.TmpSignalConversionAtSFunctionI[3];
2101 L4_MABX_DW.IGN_RELAY_OFF_DELAY_SECS_APV =
2102 L4_MABX_B.TmpSignalConversionAtSFunctio_k[0];
2103 L4_MABX_DW.INVERTER_RELAY_OFF_DELAY_SECS_A =
2104 L4_MABX_B.TmpSignalConversionAtSFunctio_k[1];
2105 L4_MABX_DW.MABX_RELAY_OFF_DELAY_SECS_APV =
2106 L4_MABX_B.TmpSignalConversionAtSFunctio_k[2];
2107 L4_MABX_DW.SENSOR_RELAY_OFF_DELAY_SECS_APV =
2108 L4_MABX_B.TmpSignalConversionAtSFunctio_k[3];
2109}
2110
2111real_T rt_atan2d_snf(real_T u0, real_T u1)
2112{
2113 real_T y;
2114 int32_T tmp;
2115 int32_T tmp_0;
2116 if (rtIsNaN(u0) || rtIsNaN(u1)) {
2117 y = (rtNaN);
2118 } else if (rtIsInf(u0) && rtIsInf(u1)) {
2119 if (u1 > 0.0) {
2120 tmp = 1;
2121 } else {
2122 tmp = -1;
2123 }
2124
2125 if (u0 > 0.0) {
2126 tmp_0 = 1;
2127 } else {
2128 tmp_0 = -1;
2129 }
2130
2131 y = atan2(tmp_0, tmp);
2132 } else if (u1 == 0.0) {
2133 if (u0 > 0.0) {
2134 y = RT_PI / 2.0;
2135 } else if (u0 < 0.0) {
2136 y = -(RT_PI / 2.0);
2137 } else {
2138 y = 0.0;
2139 }
2140 } else {
2141 y = atan2(u0, u1);
2142 }
2143
2144 return y;
2145}
2146
2147real_T rt_powd_snf(real_T u0, real_T u1)
2148{
2149 real_T y;
2150 real_T tmp;
2151 real_T tmp_0;
2152 if (rtIsNaN(u0) || rtIsNaN(u1)) {
2153 y = (rtNaN);
2154 } else {
2155 tmp = fabs(u0);
2156 tmp_0 = fabs(u1);
2157 if (rtIsInf(u1)) {
2158 if (tmp == 1.0) {
2159 y = 1.0;
2160 } else if (tmp > 1.0) {
2161 if (u1 > 0.0) {
2162 y = (rtInf);
2163 } else {
2164 y = 0.0;
2165 }
2166 } else if (u1 > 0.0) {
2167 y = 0.0;
2168 } else {
2169 y = (rtInf);
2170 }
2171 } else if (tmp_0 == 0.0) {
2172 y = 1.0;
2173 } else if (tmp_0 == 1.0) {
2174 if (u1 > 0.0) {
2175 y = u0;
2176 } else {
2177 y = 1.0 / u0;
2178 }
2179 } else if (u1 == 2.0) {
2180 y = u0 * u0;
2181 } else if ((u1 == 0.5) && (u0 >= 0.0)) {
2182 y = sqrt(u0);
2183 } else if ((u0 < 0.0) && (u1 > floor(u1))) {
2184 y = (rtNaN);
2185 } else {
2186 y = pow(u0, u1);
2187 }
2188 }
2189
2190 return y;
2191}
2192
2193/* Function for Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
2194static void L4_MABX_Calculate_abc(void)
2195{
2196 /* MATLAB Function 'Calculate_abc': '<S353>:158' */
2197 /* Graphical Function 'Calculate_abc': '<S353>:158' */
2198 /* '<S353>:160:1' */
2199 L4_MABX_DW.a = L4_MABX_DW.Jerk56 - L4_MABX_DW.Jerk12;
2200
2201 /* '<S353>:160:1' */
2202 L4_MABX_DW.b = ((L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.Jerk12 -
2203 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56) -
2204 L4_MABX_DW.Jerk12 * L4_MABX_DW.Jerk56 * L4_MABX_DW.TimeFinal) *
2205 2.0;
2206
2207 /* '<S353>:160:3' */
2208 L4_MABX_DW.c = (2.0 * L4_MABX_DW.Jerk12 * L4_MABX_DW.Jerk56 *
2209 (L4_MABX_DW.VelocityFinalLimited -
2210 L4_MABX_DW.VelocityInitialLimited) +
2211 L4_MABX_DW.AccelerationInitialLimited *
2212 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56) -
2213 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.AccelerationFinalLimited *
2214 L4_MABX_DW.Jerk12;
2215}
2216
2217/* Function for Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
2218static void L4_MABX_CalculateAlternate_abc(void)
2219{
2220 /* MATLAB Function 'CalculateAlternate_abc': '<S353>:286' */
2221 /* Graphical Function 'CalculateAlternate_abc': '<S353>:286' */
2222 /* '<S353>:285:1' */
2223 L4_MABX_DW.a = 1.0;
2224
2225 /* '<S353>:285:1' */
2226 L4_MABX_DW.b = ((L4_MABX_DW.TimeFinal - 0.005) * L4_MABX_DW.Jerk56 -
2227 L4_MABX_DW.AccelerationFinalLimited) * 2.0;
2228
2229 /* '<S353>:285:3' */
2230 L4_MABX_DW.c = 2.0 * L4_MABX_DW.Jerk56 * (L4_MABX_DW.VelocityInitialLimited -
2231 L4_MABX_DW.VelocityFinalLimited) + L4_MABX_DW.AccelerationFinalLimited *
2232 L4_MABX_DW.AccelerationFinalLimited;
2233}
2234
2235/* Function for Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
2236static void L4_MABX_CalculateAcceleration34(void)
2237{
2238 real_T u;
2239 real_T u0;
2240 real_T u1;
2241
2242 /* MATLAB Function 'CalculateAcceleration34': '<S353>:167' */
2243 /* Graphical Function 'CalculateAcceleration34': '<S353>:167' */
2244 /* '<S353>:186:1' */
2245 /* '<S353>:186:5' */
2246 /* '<S353>:186:8' */
2247 u = L4_MABX_DW.Jerk12;
2248 if (u < 0.0) {
2249 u = -1.0;
2250 } else if (u > 0.0) {
2251 u = 1.0;
2252 } else if (u == 0.0) {
2253 u = 0.0;
2254 } else {
2255 u = (rtNaN);
2256 }
2257
2258 u0 = fabs(L4_MABX_DW.Jerk12);
2259 u1 = fabs(((((L4_MABX_DW.AccelerationInitialLimited *
2260 L4_MABX_DW.AccelerationFinalLimited -
2261 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56 *
2262 L4_MABX_DW.TimeFinal) + (L4_MABX_DW.VelocityFinalLimited -
2263 L4_MABX_DW.VelocityInitialLimited) * L4_MABX_DW.Jerk56) * 2.0 -
2264 L4_MABX_DW.AccelerationInitialLimited *
2265 L4_MABX_DW.AccelerationInitialLimited) -
2266 L4_MABX_DW.AccelerationFinalLimited *
2267 L4_MABX_DW.AccelerationFinalLimited) /
2268 (((L4_MABX_DW.VelocityFinalLimited -
2269 L4_MABX_DW.VelocityInitialLimited) -
2270 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.TimeFinal) * 2.0
2271 + L4_MABX_DW.TimeFinal * L4_MABX_DW.TimeFinal * L4_MABX_DW.Jerk56))
2272 + 0.001;
2273 if ((u0 > u1) || rtIsNaN(u1)) {
2274 u1 = u0;
2275 }
2276
2277 L4_MABX_DW.Jerk12 = u * u1;
2278
2279 /* '<S353>:186:11' */
2280 u1 = L4_MABX_DW.Jerk12;
2281 if ((10.0 < u1) || rtIsNaN(u1)) {
2282 u1 = 10.0;
2283 }
2284
2285 if ((-10.0 > u1) || rtIsNaN(u1)) {
2286 L4_MABX_DW.Jerk12 = -10.0;
2287 } else {
2288 L4_MABX_DW.Jerk12 = u1;
2289 }
2290
2291 /* '<S353>:186:11' */
2292 L4_MABX_Calculate_abc();
2293
2294 /* '<S353>:187:1' */
2295 if (fabs(L4_MABX_DW.a) < 0.01) {
2296 /* '<S353>:188:1' */
2297 L4_MABX_DW.Jerk12 = L4_MABX_DW.Jerk56;
2298
2299 /* '<S353>:188:1' */
2300 L4_MABX_Calculate_abc();
2301
2302 /* '<S353>:188:1' */
2303 L4_MABX_DW.Acceleration34 = -L4_MABX_DW.c / L4_MABX_DW.b;
2304
2305 /* '<S353>:188:2' */
2306 L4_MABX_DW.AlternateMethod = false;
2307 } else {
2308 /* '<S353>:224:1' */
2309 if (L4_MABX_DW.b * L4_MABX_DW.b <= 4.0 * L4_MABX_DW.a * L4_MABX_DW.c) {
2310 /* '<S353>:292:1' */
2311 L4_MABX_CalculateAlternate_abc();
2312
2313 /* '<S353>:292:1' */
2314 L4_MABX_DW.Acceleration34 = -L4_MABX_DW.b / (2.0 * L4_MABX_DW.a);
2315
2316 /* '<S353>:292:2' */
2317 L4_MABX_DW.AlternateMethod = true;
2318 } else {
2319 /* '<S353>:294:1' */
2320 L4_MABX_DW.Acceleration34 = (sqrt(L4_MABX_DW.b * L4_MABX_DW.b - 4.0 *
2321 L4_MABX_DW.a * L4_MABX_DW.c) + -L4_MABX_DW.b) / (2.0 * L4_MABX_DW.a);
2322
2323 /* '<S353>:294:2' */
2324 L4_MABX_DW.AlternateMethod = false;
2325 }
2326 }
2327}
2328
2329static int32_T safe_cast_to_ENUM_CAN_STATUS_DI(int32_T input)
2330{
2331 int32_T y;
2332
2333 /* Initialize output value to default value for ENUM_CAN_STATUS_DIAG_T (ACTIVE) */
2334 y = 0;
2335 if ((input >= 0) && (input <= 2)) {
2336 /* Set output value to input value if it is a member of ENUM_CAN_STATUS_DIAG_T */
2337 y = input;
2338 }
2339
2340 return y;
2341}
2342
2343/* Model output function for TID0 */
2344void L4_MABX_output0(void) /* Sample time: [0.01s, 0.0s] */
2345{
2346 int_T tid = 0;
2347 uint8_T starting_index;
2348 real_T AccelerationAverage;
2349 real_T DeltaTimeFinal;
2350 uint8_T j;
2351 real_T PositionFinalLimited;
2352 real_T Time56;
2353 real_T DeltaTime;
2354 uint32_T tmp;
2355 boolean_T zcEvent;
2356 int32_T i;
2357 uint32_T q0;
2358 uint16_T tmp_0;
2359 int8_T tmp_1;
2360
2361 /* Update the flag to indicate when data transfers from
2362 * Sample time: [0.01s, 0.0s] to Sample time: [0.02s, 0.0s] */
2363 L4_MABX_M->Timing.perTaskSampleHits[1] =
2364 (L4_MABX_M->Timing.RateInteraction.TID0_1 == 0);
2365 (L4_MABX_M->Timing.RateInteraction.TID0_1)++;
2366 if ((L4_MABX_M->Timing.RateInteraction.TID0_1) > 1) {
2367 L4_MABX_M->Timing.RateInteraction.TID0_1 = 0;
2368 }
2369
2370 /* Update the flag to indicate when data transfers from
2371 * Sample time: [0.01s, 0.0s] to Sample time: [0.05s, 0.0s] */
2372 L4_MABX_M->Timing.perTaskSampleHits[2] =
2373 (L4_MABX_M->Timing.RateInteraction.TID0_2 == 0);
2374 (L4_MABX_M->Timing.RateInteraction.TID0_2)++;
2375 if ((L4_MABX_M->Timing.RateInteraction.TID0_2) > 4) {
2376 L4_MABX_M->Timing.RateInteraction.TID0_2 = 0;
2377 }
2378
2379 /* Update the flag to indicate when data transfers from
2380 * Sample time: [0.01s, 0.0s] to Sample time: [0.1s, 0.0s] */
2381 L4_MABX_M->Timing.perTaskSampleHits[3] =
2382 (L4_MABX_M->Timing.RateInteraction.TID0_3 == 0);
2383 (L4_MABX_M->Timing.RateInteraction.TID0_3)++;
2384 if ((L4_MABX_M->Timing.RateInteraction.TID0_3) > 9) {
2385 L4_MABX_M->Timing.RateInteraction.TID0_3 = 0;
2386 }
2387
2388 /* Update the flag to indicate when data transfers from
2389 * Sample time: [0.01s, 0.0s] to Sample time: [1.0s, 0.0s] */
2390 L4_MABX_M->Timing.perTaskSampleHits[6] =
2391 (L4_MABX_M->Timing.RateInteraction.TID0_6 == 0);
2392 (L4_MABX_M->Timing.RateInteraction.TID0_6)++;
2393 if ((L4_MABX_M->Timing.RateInteraction.TID0_6) > 99) {
2394 L4_MABX_M->Timing.RateInteraction.TID0_6 = 0;
2395 }
2396
2397 /* Update the flag to indicate when data transfers from
2398 * Sample time: [0.01s, 0.0s] to Sample time: [5.0s, 0.0s] */
2399 L4_MABX_M->Timing.perTaskSampleHits[7] =
2400 (L4_MABX_M->Timing.RateInteraction.TID0_7 == 0);
2401 (L4_MABX_M->Timing.RateInteraction.TID0_7)++;
2402 if ((L4_MABX_M->Timing.RateInteraction.TID0_7) > 499) {
2403 L4_MABX_M->Timing.RateInteraction.TID0_7 = 0;
2404 }
2405
2406 /* Outputs for Enabled SubSystem: '<S492>/AIR1' incorporates:
2407 * EnablePort: '<S493>/Enable'
2408 */
2409 /* Constant: '<S420>/Constant' */
2410 if (L4_MABX_P.Constant_Value_fg) {
2411 /* S-Function (rti_commonblock): '<S493>/S-Function1' */
2412 /* This comment workarounds a code generation problem */
2413
2414 /* dSPACE RTICAN RX Message Block: "AIR1" Id:419343921 */
2415 {
2416 UInt32 *CAN_Msg;
2417 static dsfloat time_old = 0.0;
2418
2419 /* Read status and timestamp info (previous message) */
2420 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].timestamp !=
2421 time_old) {
2422 /* ... save timestamp info for the calculation of the RX status
2423 during the consecutive sample hit*/
2424 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].
2425 timestamp;
2426
2427 /* ... set the processed flag to one */
2428 L4_MABX_B.SFunction1_o9_kp = 1.0;
2429 L4_MABX_B.SFunction1_o10_ju = (real_T)
2430 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].timestamp;
2431 L4_MABX_B.SFunction1_o11_j2 = (real_T)
2432 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].deltatime;
2433 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].data;
2434
2435 /* Decode CAN message */
2436 {
2437 {
2438 rtican_Signal_t CAN_Sgn;
2439
2440 /* ...... "PneumaticSupplyPress" (0|8, standard signal, unsigned int, little endian) */
2441 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
2442 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2443 L4_MABX_B.SFunction1_o1_lq = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2444
2445 /* ...... "ParkingAnd_orTrailerAirPress" (8|8, standard signal, unsigned int, little endian) */
2446 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
2447 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2448 L4_MABX_B.SFunction1_o2_jn = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2449
2450 /* ...... "ServiceBrakeCircuit1AirPress" (16|8, standard signal, unsigned int, little endian) */
2451 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
2452 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2453 L4_MABX_B.SFunction1_o3_bu = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2454
2455 /* ...... "ServiceBrakeCircuit2AirPress" (24|8, standard signal, unsigned int, little endian) */
2456 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
2457 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2458 L4_MABX_B.SFunction1_o4_kcx = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2459
2460 /* ...... "AuxEquipmentSupplyPress" (32|8, standard signal, unsigned int, little endian) */
2461 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
2462 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2463 L4_MABX_B.SFunction1_o5_os = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2464
2465 /* ...... "AirSuspensionSupplyPress" (40|8, standard signal, unsigned int, little endian) */
2466 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
2467 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2468 L4_MABX_B.SFunction1_o6_je = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2469
2470 /* ...... "AirCompressorStatus" (48|2, standard signal, unsigned int, little endian) */
2471 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
2472 CAN_Sgn.UnsignedSgn &= 0x00000003;
2473 L4_MABX_B.SFunction1_o7_ie = ((real_T) CAN_Sgn.UnsignedSgn);
2474
2475 /* ...... "PowertrainCircuitAirSupplyPress" (56|8, standard signal, unsigned int, little endian) */
2476 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
2477 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2478 L4_MABX_B.SFunction1_o8_kv = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2479 }
2480 }
2481 } else {
2482 /* set RX status to 0 because no new message has arrived */
2483 L4_MABX_B.SFunction1_o9_kp = 0.0;
2484 }
2485 }
2486 }
2487
2488 /* End of Constant: '<S420>/Constant' */
2489 /* End of Outputs for SubSystem: '<S492>/AIR1' */
2490
2491 /* Outputs for Enabled SubSystem: '<S494>/AMB' incorporates:
2492 * EnablePort: '<S495>/Enable'
2493 */
2494 /* Constant: '<S421>/Constant' */
2495 if (L4_MABX_P.Constant_Value_kv) {
2496 /* S-Function (rti_commonblock): '<S495>/S-Function1' */
2497 /* This comment workarounds a code generation problem */
2498
2499 /* dSPACE RTICAN RX Message Block: "AMB" Id:419362048 */
2500 {
2501 UInt32 *CAN_Msg;
2502 static dsfloat time_old = 0.0;
2503
2504 /* Read status and timestamp info (previous message) */
2505 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].timestamp !=
2506 time_old) {
2507 /* ... save timestamp info for the calculation of the RX status
2508 during the consecutive sample hit*/
2509 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].
2510 timestamp;
2511
2512 /* ... set the processed flag to one */
2513 L4_MABX_B.SFunction1_o6_c = 1.0;
2514 L4_MABX_B.SFunction1_o7_nvh = (real_T)
2515 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].timestamp;
2516 L4_MABX_B.SFunction1_o8_au = (real_T)
2517 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].deltatime;
2518 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].data;
2519
2520 /* Decode CAN message */
2521 {
2522 {
2523 rtican_Signal_t CAN_Sgn;
2524
2525 /* ...... "BarometricPress" (0|8, standard signal, unsigned int, little endian) */
2526 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
2527 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2528 L4_MABX_B.SFunction1_o1_lz = 0.5 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2529
2530 /* ...... "CabInteriorTemp" (8|16, standard signal, unsigned int, little endian) */
2531 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
2532 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
2533 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2534 L4_MABX_B.SFunction1_o2_bz = -273 + ( 0.03125 * ( ((real_T)
2535 CAN_Sgn.UnsignedSgn) ) );
2536
2537 /* ...... "AmbientAirTemp" (24|16, standard signal, unsigned int, little endian) */
2538 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
2539 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
2540 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2541 L4_MABX_B.SFunction1_o3_awg = -273 + ( 0.03125 * ( ((real_T)
2542 CAN_Sgn.UnsignedSgn) ) );
2543
2544 /* ...... "EngAirIntakeTemp" (40|8, standard signal, unsigned int, little endian) */
2545 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
2546 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2547 L4_MABX_B.SFunction1_o4_na = -40 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
2548
2549 /* ...... "RoadSurfaceTemp" (48|16, standard signal, unsigned int, little endian) */
2550 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
2551 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
2552 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2553 L4_MABX_B.SFunction1_o5_dm = -273 + ( 0.03125 * ( ((real_T)
2554 CAN_Sgn.UnsignedSgn) ) );
2555 }
2556 }
2557 } else {
2558 /* set RX status to 0 because no new message has arrived */
2559 L4_MABX_B.SFunction1_o6_c = 0.0;
2560 }
2561 }
2562 }
2563
2564 /* End of Constant: '<S421>/Constant' */
2565 /* End of Outputs for SubSystem: '<S494>/AMB' */
2566
2567 /* Outputs for Atomic SubSystem: '<S834>/CAN_TX_1000ms' */
2568
2569 /* RateTransition: '<S854>/TmpRTBAtAIR1Inport1' */
2570 if (L4_MABX_M->Timing.RateInteraction.TID0_6 == 1) {
2571 L4_MABX_B.PneumaticSupplyPress = L4_MABX_B.SFunction1_o1_lq;
2572 L4_MABX_B.ParkingAnd_orTrailerAirPress = L4_MABX_B.SFunction1_o2_jn;
2573 L4_MABX_B.ServiceBrakeCircuit1AirPress = L4_MABX_B.SFunction1_o3_bu;
2574 L4_MABX_B.ServiceBrakeCircuit2AirPress = L4_MABX_B.SFunction1_o4_kcx;
2575 L4_MABX_B.AuxEquipmentSupplyPress = L4_MABX_B.SFunction1_o5_os;
2576 L4_MABX_B.AirSuspensionSupplyPress = L4_MABX_B.SFunction1_o6_je;
2577 L4_MABX_B.AirCompressorStatus = L4_MABX_B.SFunction1_o7_ie;
2578 L4_MABX_B.PowertrainCircuitAirSupplyPress = L4_MABX_B.SFunction1_o8_kv;
2579 L4_MABX_B.BarometricPress_k = L4_MABX_B.SFunction1_o1_lz;
2580 L4_MABX_B.CabInteriorTemp = L4_MABX_B.SFunction1_o2_bz;
2581 L4_MABX_B.AmbientAirTemp_a = L4_MABX_B.SFunction1_o3_awg;
2582 L4_MABX_B.EngAirIntakeTemp = L4_MABX_B.SFunction1_o4_na;
2583 L4_MABX_B.RoadSurfaceTemp = L4_MABX_B.SFunction1_o5_dm;
2584 }
2585
2586 /* End of Outputs for SubSystem: '<S834>/CAN_TX_1000ms' */
2587
2588 /* S-Function (rti_commonblock): '<S729>/S-Function1' */
2589 /* This comment workarounds a code generation problem */
2590
2591 /* DataTypeConversion: '<S411>/EStopSwActive' */
2592 L4_MABX_B.EStopSwActive = L4_MABX_B.SFunction1_g;
2593
2594 /* Logic: '<S411>/Logical Operator1' */
2595 EStop = !L4_MABX_B.EStopSwActive;
2596
2597 /* S-Function (rti_commonblock): '<S728>/S-Function1' */
2598 /* This comment workarounds a code generation problem */
2599
2600 /* S-Function (sfix_bitop): '<S828>/Operator' */
2601 L4_MABX_B.Operator_lz = (L4_MABX_B.SFunction1_k &&
2602 (L4_MABX_P.Operator_BitMask_ly != 0));
2603
2604 /* DataTypeConversion: '<S828>/DataType' */
2605 L4_MABX_B.DataType_p2 = L4_MABX_B.Operator_lz;
2606
2607 /* Logic: '<S738>/Logical Operator' */
2608 L4_MABX_B.LogicalOperator = !L4_MABX_B.DataType_p2;
2609
2610 /* S-Function (rti_commonblock): '<S731>/S-Function1' */
2611 /* This comment workarounds a code generation problem */
2612
2613 /* S-Function (sfix_bitop): '<S829>/Operator' */
2614 L4_MABX_B.Operator_mo = (L4_MABX_B.SFunction1_f &&
2615 (L4_MABX_P.Operator_BitMask_e1 != 0));
2616
2617 /* DataTypeConversion: '<S829>/DataType' */
2618 L4_MABX_B.DataType_ft = L4_MABX_B.Operator_mo;
2619
2620 /* Logic: '<S738>/AND2' */
2621 L4_MABX_B.AND2 = (L4_MABX_B.LogicalOperator && L4_MABX_B.DataType_ft);
2622
2623 /* Chart: '<S830>/Chart' */
2624 /* Gateway: DIGITAL/Signal Check/RationalityCheck/Chart */
2625 /* During: DIGITAL/Signal Check/RationalityCheck/Chart */
2626 if (L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW == 0U) {
2627 /* Entry: DIGITAL/Signal Check/RationalityCheck/Chart */
2628 L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW = 1U;
2629
2630 /* Entry Internal: DIGITAL/Signal Check/RationalityCheck/Chart */
2631 /* Transition: '<S831>:6' */
2632 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_init_a;
2633
2634 /* Entry 'init': '<S831>:1' */
2635 L4_MABX_B.DiagPassed = false;
2636 } else {
2637 switch (L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf) {
2638 case L4_MABX_IN_DiagPassed:
2639 /* During 'DiagPassed': '<S831>:4' */
2640 break;
2641
2642 case L4_MABX_IN_SwitchOff:
2643 /* During 'SwitchOff': '<S831>:2' */
2644 if (L4_MABX_B.AND2) {
2645 /* Transition: '<S831>:8' */
2646 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_DiagPassed;
2647
2648 /* Entry 'DiagPassed': '<S831>:4' */
2649 L4_MABX_B.DiagPassed = true;
2650 }
2651 break;
2652
2653 case L4_MABX_IN_SwitchOn:
2654 /* During 'SwitchOn': '<S831>:3' */
2655 if (!L4_MABX_B.AND2) {
2656 /* Transition: '<S831>:9' */
2657 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOff;
2658 }
2659 break;
2660
2661 default:
2662 /* During 'init': '<S831>:1' */
2663 if (!L4_MABX_B.AND2) {
2664 /* Transition: '<S831>:5' */
2665 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOff;
2666 } else {
2667 /* Transition: '<S831>:7' */
2668 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOn;
2669 }
2670 break;
2671 }
2672 }
2673
2674 /* End of Chart: '<S830>/Chart' */
2675
2676 /* Switch: '<S738>/Switch' incorporates:
2677 * Constant: '<S738>/OverrideOperatorEnableSW_Default'
2678 */
2679 if (L4_MABX_B.DiagPassed) {
2680 EnableSw = L4_MABX_B.AND2;
2681 } else {
2682 EnableSw = L4_MABX_P.OverrideOperatorEnableSW_Defaul;
2683 }
2684
2685 /* End of Switch: '<S738>/Switch' */
2686
2687 /* S-Function (rti_commonblock): '<S734>/S-Function1' */
2688 /* This comment workarounds a code generation problem */
2689
2690 /* DataTypeConversion: '<S411>/Data Type Conversion2' */
2691 L4_MABX_B.Pedal_1_pwm_freq_raw_value = L4_MABX_B.SFunction1_o1;
2692
2693 /* RelationalOperator: '<S776>/min_relop' incorporates:
2694 * Constant: '<S748>/PWMAFreqRngMin'
2695 */
2696 L4_MABX_B.min_relop = (L4_MABX_P.PWMAFreqRngMin_Value <
2697 L4_MABX_B.Pedal_1_pwm_freq_raw_value);
2698
2699 /* RelationalOperator: '<S776>/max_relop' incorporates:
2700 * Constant: '<S748>/PWMAFreqRngMax'
2701 */
2702 L4_MABX_B.max_relop = (L4_MABX_B.Pedal_1_pwm_freq_raw_value <
2703 L4_MABX_P.PWMAFreqRngMax_Value);
2704
2705 /* Logic: '<S776>/conjunction' */
2706 L4_MABX_B.conjunction = (L4_MABX_B.min_relop && L4_MABX_B.max_relop);
2707
2708 /* UnitDelay: '<S781>/FixPt Unit Delay2' */
2709 L4_MABX_B.FixPtUnitDelay2 = L4_MABX_DW.FixPtUnitDelay2_DSTATE;
2710
2711 /* UnitDelay: '<S781>/FixPt Unit Delay1' */
2712 L4_MABX_B.Xold = L4_MABX_DW.FixPtUnitDelay1_DSTATE;
2713
2714 /* Switch: '<S781>/Init' incorporates:
2715 * Constant: '<S748>/PWMAFreqRngFaultLimMin'
2716 */
2717 if (L4_MABX_B.FixPtUnitDelay2 != 0) {
2718 L4_MABX_B.Init = L4_MABX_P.PWMAFreqRngFaultLimMin_Value;
2719 } else {
2720 L4_MABX_B.Init = L4_MABX_B.Xold;
2721 }
2722
2723 /* End of Switch: '<S781>/Init' */
2724
2725 /* Sum: '<S777>/FixPt Sum1' incorporates:
2726 * Constant: '<S777>/FixPt Constant'
2727 */
2728 L4_MABX_B.FixPtSum1 = L4_MABX_B.Init - L4_MABX_P.FixPtConstant_Value_o;
2729
2730 /* Sum: '<S780>/FixPt Sum1' incorporates:
2731 * Constant: '<S780>/FixPt Constant'
2732 */
2733 L4_MABX_B.FixPtSum1_l = L4_MABX_B.Init + L4_MABX_P.FixPtConstant_Value_g;
2734
2735 /* Outputs for Atomic SubSystem: '<S764>/If_Then_Else3' */
2736 L4_MABX_If_Then_Else(L4_MABX_B.conjunction, L4_MABX_B.FixPtSum1,
2737 L4_MABX_B.FixPtSum1_l, &L4_MABX_B.If_Then_Else3_p);
2738
2739 /* End of Outputs for SubSystem: '<S764>/If_Then_Else3' */
2740
2741 /* RelationalOperator: '<S778>/Relational Operator1' incorporates:
2742 * Constant: '<S748>/PWMAFreqRngFaultLimMax'
2743 */
2744 L4_MABX_B.RelationalOperator1 = (L4_MABX_B.If_Then_Else3_p.Switch >=
2745 L4_MABX_P.PWMAFreqRngFaultLimMax_Value);
2746
2747 /* RelationalOperator: '<S778>/Relational Operator' incorporates:
2748 * Constant: '<S748>/PWMAFreqRngFaultLimMin'
2749 */
2750 L4_MABX_B.RelationalOperator = (L4_MABX_B.If_Then_Else3_p.Switch <=
2751 L4_MABX_P.PWMAFreqRngFaultLimMin_Value);
2752
2753 /* Outputs for Atomic SubSystem: '<S778>/If_Then_Else1' */
2754
2755 /* Constant: '<S748>/PWMAFreqRngFaultLimMin' */
2756 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator,
2757 L4_MABX_P.PWMAFreqRngFaultLimMin_Value,
2758 L4_MABX_B.If_Then_Else3_p.Switch,
2759 &L4_MABX_B.If_Then_Else1_e);
2760
2761 /* End of Outputs for SubSystem: '<S778>/If_Then_Else1' */
2762
2763 /* Outputs for Atomic SubSystem: '<S778>/If_Then_Else' */
2764
2765 /* Constant: '<S748>/PWMAFreqRngFaultLimMax' */
2766 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1,
2767 L4_MABX_P.PWMAFreqRngFaultLimMax_Value,
2768 L4_MABX_B.If_Then_Else1_e.Switch,
2769 &L4_MABX_B.If_Then_Else_l);
2770
2771 /* End of Outputs for SubSystem: '<S778>/If_Then_Else' */
2772
2773 /* RelationalOperator: '<S764>/Relational Operator9' incorporates:
2774 * Constant: '<S748>/PWMAFreqRngFaultLimMin'
2775 */
2776 L4_MABX_B.F_Fault_Soft = (L4_MABX_B.If_Then_Else_l.Switch !=
2777 L4_MABX_P.PWMAFreqRngFaultLimMin_Value);
2778
2779 /* Gain: '<S411>/Gain' */
2780 L4_MABX_B.Gain = L4_MABX_P.Gain_Gain_g4 * L4_MABX_B.SFunction1_o2;
2781
2782 /* DataTypeConversion: '<S411>/Data Type Conversion9' */
2783 L4_MABX_B.Pedal_1_pwm_dc_raw_value = L4_MABX_B.Gain;
2784
2785 /* RelationalOperator: '<S768>/min_relop' incorporates:
2786 * Constant: '<S748>/PWMADCRngMin'
2787 */
2788 L4_MABX_B.min_relop_j = (L4_MABX_P.PWMADCRngMin_Value <
2789 L4_MABX_B.Pedal_1_pwm_dc_raw_value);
2790
2791 /* RelationalOperator: '<S768>/max_relop' incorporates:
2792 * Constant: '<S748>/PWMADCRngMax'
2793 */
2794 L4_MABX_B.max_relop_o = (L4_MABX_B.Pedal_1_pwm_dc_raw_value <
2795 L4_MABX_P.PWMADCRngMax_Value);
2796
2797 /* Logic: '<S768>/conjunction' */
2798 L4_MABX_B.conjunction_a = (L4_MABX_B.min_relop_j && L4_MABX_B.max_relop_o);
2799
2800 /* UnitDelay: '<S773>/FixPt Unit Delay2' */
2801 L4_MABX_B.FixPtUnitDelay2_o = L4_MABX_DW.FixPtUnitDelay2_DSTATE_a;
2802
2803 /* UnitDelay: '<S773>/FixPt Unit Delay1' */
2804 L4_MABX_B.Xold_i = L4_MABX_DW.FixPtUnitDelay1_DSTATE_h;
2805
2806 /* Switch: '<S773>/Init' incorporates:
2807 * Constant: '<S748>/PWMADCRngFaultLimMin'
2808 */
2809 if (L4_MABX_B.FixPtUnitDelay2_o != 0) {
2810 L4_MABX_B.Init_h = L4_MABX_P.PWMADCRngFaultLimMin_Value;
2811 } else {
2812 L4_MABX_B.Init_h = L4_MABX_B.Xold_i;
2813 }
2814
2815 /* End of Switch: '<S773>/Init' */
2816
2817 /* Sum: '<S769>/FixPt Sum1' incorporates:
2818 * Constant: '<S769>/FixPt Constant'
2819 */
2820 L4_MABX_B.FixPtSum1_n = L4_MABX_B.Init_h - L4_MABX_P.FixPtConstant_Value_j;
2821
2822 /* Sum: '<S772>/FixPt Sum1' incorporates:
2823 * Constant: '<S772>/FixPt Constant'
2824 */
2825 L4_MABX_B.FixPtSum1_e = L4_MABX_B.Init_h + L4_MABX_P.FixPtConstant_Value_m;
2826
2827 /* Outputs for Atomic SubSystem: '<S763>/If_Then_Else3' */
2828 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_a, L4_MABX_B.FixPtSum1_n,
2829 L4_MABX_B.FixPtSum1_e, &L4_MABX_B.If_Then_Else3);
2830
2831 /* End of Outputs for SubSystem: '<S763>/If_Then_Else3' */
2832
2833 /* RelationalOperator: '<S770>/Relational Operator1' incorporates:
2834 * Constant: '<S748>/PWMADCRngFaultLimMax'
2835 */
2836 L4_MABX_B.RelationalOperator1_n = (L4_MABX_B.If_Then_Else3.Switch >=
2837 L4_MABX_P.PWMADCRngFaultLimMax_Value);
2838
2839 /* RelationalOperator: '<S770>/Relational Operator' incorporates:
2840 * Constant: '<S748>/PWMADCRngFaultLimMin'
2841 */
2842 L4_MABX_B.RelationalOperator_m = (L4_MABX_B.If_Then_Else3.Switch <=
2843 L4_MABX_P.PWMADCRngFaultLimMin_Value);
2844
2845 /* Outputs for Atomic SubSystem: '<S770>/If_Then_Else1' */
2846
2847 /* Constant: '<S748>/PWMADCRngFaultLimMin' */
2848 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_m,
2849 L4_MABX_P.PWMADCRngFaultLimMin_Value,
2850 L4_MABX_B.If_Then_Else3.Switch,
2851 &L4_MABX_B.If_Then_Else1_n);
2852
2853 /* End of Outputs for SubSystem: '<S770>/If_Then_Else1' */
2854
2855 /* Outputs for Atomic SubSystem: '<S770>/If_Then_Else' */
2856
2857 /* Constant: '<S748>/PWMADCRngFaultLimMax' */
2858 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_n,
2859 L4_MABX_P.PWMADCRngFaultLimMax_Value,
2860 L4_MABX_B.If_Then_Else1_n.Switch,
2861 &L4_MABX_B.If_Then_Else_d);
2862
2863 /* End of Outputs for SubSystem: '<S770>/If_Then_Else' */
2864
2865 /* RelationalOperator: '<S763>/Relational Operator9' incorporates:
2866 * Constant: '<S748>/PWMADCRngFaultLimMin'
2867 */
2868 L4_MABX_B.F_Fault_Soft_a = (L4_MABX_B.If_Then_Else_d.Switch !=
2869 L4_MABX_P.PWMADCRngFaultLimMin_Value);
2870
2871 /* Logic: '<S748>/Logical Operator2' */
2872 L4_MABX_B.LogicalOperator2 = (L4_MABX_B.F_Fault_Soft ||
2873 L4_MABX_B.F_Fault_Soft_a);
2874
2875 /* RelationalOperator: '<S764>/Relational Operator8' incorporates:
2876 * Constant: '<S748>/PWMAFreqRngFaultLimMax'
2877 */
2878 L4_MABX_B.F_Fault_Hard = (L4_MABX_P.PWMAFreqRngFaultLimMax_Value <=
2879 L4_MABX_B.If_Then_Else_l.Switch);
2880
2881 /* RelationalOperator: '<S763>/Relational Operator8' incorporates:
2882 * Constant: '<S748>/PWMADCRngFaultLimMax'
2883 */
2884 L4_MABX_B.F_Fault_Hard_m = (L4_MABX_P.PWMADCRngFaultLimMax_Value <=
2885 L4_MABX_B.If_Then_Else_d.Switch);
2886
2887 /* Logic: '<S748>/Logical Operator1' */
2888 L4_MABX_B.LogicalOperator1 = (L4_MABX_B.F_Fault_Hard ||
2889 L4_MABX_B.F_Fault_Hard_m);
2890
2891 /* Chart: '<S748>/Health State Machine PWM Sensor 1' */
2892 /* Gateway: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2893 /* During: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2894 if (L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW == 0U) {
2895 /* Entry: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2896 L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW = 1U;
2897
2898 /* Entry Internal: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2899 /* Transition: '<S761>:2' */
2900 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_FAILURE;
2901
2902 /* Entry 'NO_FAILURE': '<S761>:1' */
2903 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2904 } else if (L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf ==
2905 L4_MABX_IN_FAILURE_DETECTED) {
2906 /* During 'FAILURE_DETECTED': '<S761>:6' */
2907 if (L4_MABX_DW.is_FAILURE_DETECTED_e == L4_MABX_IN_ERROR) {
2908 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
2909
2910 /* During 'ERROR': '<S761>:8' */
2911 if (!L4_MABX_B.LogicalOperator1) {
2912 /* Transition: '<S761>:17' */
2913 L4_MABX_DW.is_FAILURE_DETECTED_e = L4_MABX_IN_PENDING;
2914
2915 /* Entry 'PENDING': '<S761>:7' */
2916 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2917 }
2918 } else {
2919 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2920
2921 /* During 'PENDING': '<S761>:7' */
2922 zcEvent = ((!L4_MABX_B.LogicalOperator2) && (!L4_MABX_B.LogicalOperator1));
2923 if (zcEvent) {
2924 /* Transition: '<S761>:9' */
2925 L4_MABX_DW.is_FAILURE_DETECTED_e = L4_MABX_IN_NO_ACTIVE_CHILD;
2926 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_FAILURE;
2927
2928 /* Entry 'NO_FAILURE': '<S761>:1' */
2929 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2930 } else {
2931 if (L4_MABX_B.LogicalOperator1) {
2932 /* Transition: '<S761>:12' */
2933 L4_MABX_DW.is_FAILURE_DETECTED_e = L4_MABX_IN_ERROR;
2934
2935 /* Entry 'ERROR': '<S761>:8' */
2936 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
2937 }
2938 }
2939 }
2940 } else {
2941 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2942
2943 /* During 'NO_FAILURE': '<S761>:1' */
2944 zcEvent = (L4_MABX_B.LogicalOperator2 || L4_MABX_B.LogicalOperator1);
2945 if (zcEvent) {
2946 /* Transition: '<S761>:10' */
2947 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_FAILURE_DETECTED;
2948
2949 /* Entry 'FAILURE_DETECTED': '<S761>:6' */
2950 /* Entry Internal 'FAILURE_DETECTED': '<S761>:6' */
2951 /* Transition: '<S761>:11' */
2952 L4_MABX_DW.is_FAILURE_DETECTED_e = L4_MABX_IN_PENDING;
2953
2954 /* Entry 'PENDING': '<S761>:7' */
2955 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2956 }
2957 }
2958
2959 /* End of Chart: '<S748>/Health State Machine PWM Sensor 1' */
2960
2961 /* RelationalOperator: '<S759>/Compare' incorporates:
2962 * Constant: '<S759>/Constant'
2963 */
2964 L4_MABX_B.Compare = (L4_MABX_B.Pedal_1_pwm_health_state ==
2965 L4_MABX_P.CompareToConstant_const_o);
2966
2967 /* S-Function (rti_commonblock): '<S735>/S-Function1' */
2968 /* This comment workarounds a code generation problem */
2969
2970 /* DataTypeConversion: '<S411>/Data Type Conversion3' */
2971 L4_MABX_B.Pedal_2_pwm_freq_raw_value = L4_MABX_B.SFunction1_o1_j;
2972
2973 /* RelationalOperator: '<S792>/min_relop' incorporates:
2974 * Constant: '<S748>/PWMBFreqRngMin1'
2975 */
2976 L4_MABX_B.min_relop_f = (L4_MABX_P.PWMBFreqRngMin1_Value <
2977 L4_MABX_B.Pedal_2_pwm_freq_raw_value);
2978
2979 /* RelationalOperator: '<S792>/max_relop' incorporates:
2980 * Constant: '<S748>/PWMBFreqRngMax1'
2981 */
2982 L4_MABX_B.max_relop_n = (L4_MABX_B.Pedal_2_pwm_freq_raw_value <
2983 L4_MABX_P.PWMBFreqRngMax1_Value);
2984
2985 /* Logic: '<S792>/conjunction' */
2986 L4_MABX_B.conjunction_b = (L4_MABX_B.min_relop_f && L4_MABX_B.max_relop_n);
2987
2988 /* UnitDelay: '<S797>/FixPt Unit Delay2' */
2989 L4_MABX_B.FixPtUnitDelay2_l = L4_MABX_DW.FixPtUnitDelay2_DSTATE_i;
2990
2991 /* UnitDelay: '<S797>/FixPt Unit Delay1' */
2992 L4_MABX_B.Xold_j = L4_MABX_DW.FixPtUnitDelay1_DSTATE_l;
2993
2994 /* Switch: '<S797>/Init' incorporates:
2995 * Constant: '<S748>/PWMBFreqRngFaultLimMin1'
2996 */
2997 if (L4_MABX_B.FixPtUnitDelay2_l != 0) {
2998 L4_MABX_B.Init_f = L4_MABX_P.PWMBFreqRngFaultLimMin1_Value;
2999 } else {
3000 L4_MABX_B.Init_f = L4_MABX_B.Xold_j;
3001 }
3002
3003 /* End of Switch: '<S797>/Init' */
3004
3005 /* Sum: '<S793>/FixPt Sum1' incorporates:
3006 * Constant: '<S793>/FixPt Constant'
3007 */
3008 L4_MABX_B.FixPtSum1_c = L4_MABX_B.Init_f - L4_MABX_P.FixPtConstant_Value_e;
3009
3010 /* Sum: '<S796>/FixPt Sum1' incorporates:
3011 * Constant: '<S796>/FixPt Constant'
3012 */
3013 L4_MABX_B.FixPtSum1_p = L4_MABX_B.Init_f + L4_MABX_P.FixPtConstant_Value_h;
3014
3015 /* Outputs for Atomic SubSystem: '<S766>/If_Then_Else3' */
3016 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_b, L4_MABX_B.FixPtSum1_c,
3017 L4_MABX_B.FixPtSum1_p, &L4_MABX_B.If_Then_Else3_h);
3018
3019 /* End of Outputs for SubSystem: '<S766>/If_Then_Else3' */
3020
3021 /* RelationalOperator: '<S794>/Relational Operator1' incorporates:
3022 * Constant: '<S748>/PWMBFreqRngFaultLimMax1'
3023 */
3024 L4_MABX_B.RelationalOperator1_m = (L4_MABX_B.If_Then_Else3_h.Switch >=
3025 L4_MABX_P.PWMBFreqRngFaultLimMax1_Value);
3026
3027 /* RelationalOperator: '<S794>/Relational Operator' incorporates:
3028 * Constant: '<S748>/PWMBFreqRngFaultLimMin1'
3029 */
3030 L4_MABX_B.RelationalOperator_n = (L4_MABX_B.If_Then_Else3_h.Switch <=
3031 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value);
3032
3033 /* Outputs for Atomic SubSystem: '<S794>/If_Then_Else1' */
3034
3035 /* Constant: '<S748>/PWMBFreqRngFaultLimMin1' */
3036 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_n,
3037 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value,
3038 L4_MABX_B.If_Then_Else3_h.Switch,
3039 &L4_MABX_B.If_Then_Else1_nn);
3040
3041 /* End of Outputs for SubSystem: '<S794>/If_Then_Else1' */
3042
3043 /* Outputs for Atomic SubSystem: '<S794>/If_Then_Else' */
3044
3045 /* Constant: '<S748>/PWMBFreqRngFaultLimMax1' */
3046 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_m,
3047 L4_MABX_P.PWMBFreqRngFaultLimMax1_Value,
3048 L4_MABX_B.If_Then_Else1_nn.Switch,
3049 &L4_MABX_B.If_Then_Else_p);
3050
3051 /* End of Outputs for SubSystem: '<S794>/If_Then_Else' */
3052
3053 /* RelationalOperator: '<S766>/Relational Operator9' incorporates:
3054 * Constant: '<S748>/PWMBFreqRngFaultLimMin1'
3055 */
3056 L4_MABX_B.F_Fault_Soft_d = (L4_MABX_B.If_Then_Else_p.Switch !=
3057 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value);
3058
3059 /* Gain: '<S411>/Gain1' */
3060 L4_MABX_B.Gain1 = L4_MABX_P.Gain1_Gain_j * L4_MABX_B.SFunction1_o2_n;
3061
3062 /* DataTypeConversion: '<S411>/Data Type Conversion1' */
3063 L4_MABX_B.Pedal_2_pwm_dc_raw_value = L4_MABX_B.Gain1;
3064
3065 /* RelationalOperator: '<S784>/min_relop' incorporates:
3066 * Constant: '<S748>/PWMBDCRngMin1'
3067 */
3068 L4_MABX_B.min_relop_l = (L4_MABX_P.PWMBDCRngMin1_Value <
3069 L4_MABX_B.Pedal_2_pwm_dc_raw_value);
3070
3071 /* RelationalOperator: '<S784>/max_relop' incorporates:
3072 * Constant: '<S748>/PWMBDCRngMax1'
3073 */
3074 L4_MABX_B.max_relop_n2 = (L4_MABX_B.Pedal_2_pwm_dc_raw_value <
3075 L4_MABX_P.PWMBDCRngMax1_Value);
3076
3077 /* Logic: '<S784>/conjunction' */
3078 L4_MABX_B.conjunction_f = (L4_MABX_B.min_relop_l && L4_MABX_B.max_relop_n2);
3079
3080 /* UnitDelay: '<S789>/FixPt Unit Delay2' */
3081 L4_MABX_B.FixPtUnitDelay2_h = L4_MABX_DW.FixPtUnitDelay2_DSTATE_j;
3082
3083 /* UnitDelay: '<S789>/FixPt Unit Delay1' */
3084 L4_MABX_B.Xold_h = L4_MABX_DW.FixPtUnitDelay1_DSTATE_c;
3085
3086 /* Switch: '<S789>/Init' incorporates:
3087 * Constant: '<S748>/PWMBDCRngFaultLimMin1'
3088 */
3089 if (L4_MABX_B.FixPtUnitDelay2_h != 0) {
3090 L4_MABX_B.Init_i = L4_MABX_P.PWMBDCRngFaultLimMin1_Value;
3091 } else {
3092 L4_MABX_B.Init_i = L4_MABX_B.Xold_h;
3093 }
3094
3095 /* End of Switch: '<S789>/Init' */
3096
3097 /* Sum: '<S785>/FixPt Sum1' incorporates:
3098 * Constant: '<S785>/FixPt Constant'
3099 */
3100 L4_MABX_B.FixPtSum1_g = L4_MABX_B.Init_i - L4_MABX_P.FixPtConstant_Value_jf;
3101
3102 /* Sum: '<S788>/FixPt Sum1' incorporates:
3103 * Constant: '<S788>/FixPt Constant'
3104 */
3105 L4_MABX_B.FixPtSum1_pf = L4_MABX_B.Init_i + L4_MABX_P.FixPtConstant_Value_b;
3106
3107 /* Outputs for Atomic SubSystem: '<S765>/If_Then_Else3' */
3108 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_f, L4_MABX_B.FixPtSum1_g,
3109 L4_MABX_B.FixPtSum1_pf, &L4_MABX_B.If_Then_Else3_n);
3110
3111 /* End of Outputs for SubSystem: '<S765>/If_Then_Else3' */
3112
3113 /* RelationalOperator: '<S786>/Relational Operator1' incorporates:
3114 * Constant: '<S748>/PWMBDCRngFaultLimMax1'
3115 */
3116 L4_MABX_B.RelationalOperator1_h = (L4_MABX_B.If_Then_Else3_n.Switch >=
3117 L4_MABX_P.PWMBDCRngFaultLimMax1_Value);
3118
3119 /* RelationalOperator: '<S786>/Relational Operator' incorporates:
3120 * Constant: '<S748>/PWMBDCRngFaultLimMin1'
3121 */
3122 L4_MABX_B.RelationalOperator_f = (L4_MABX_B.If_Then_Else3_n.Switch <=
3123 L4_MABX_P.PWMBDCRngFaultLimMin1_Value);
3124
3125 /* Outputs for Atomic SubSystem: '<S786>/If_Then_Else1' */
3126
3127 /* Constant: '<S748>/PWMBDCRngFaultLimMin1' */
3128 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_f,
3129 L4_MABX_P.PWMBDCRngFaultLimMin1_Value,
3130 L4_MABX_B.If_Then_Else3_n.Switch,
3131 &L4_MABX_B.If_Then_Else1_h);
3132
3133 /* End of Outputs for SubSystem: '<S786>/If_Then_Else1' */
3134
3135 /* Outputs for Atomic SubSystem: '<S786>/If_Then_Else' */
3136
3137 /* Constant: '<S748>/PWMBDCRngFaultLimMax1' */
3138 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_h,
3139 L4_MABX_P.PWMBDCRngFaultLimMax1_Value,
3140 L4_MABX_B.If_Then_Else1_h.Switch,
3141 &L4_MABX_B.If_Then_Else_e);
3142
3143 /* End of Outputs for SubSystem: '<S786>/If_Then_Else' */
3144
3145 /* RelationalOperator: '<S765>/Relational Operator9' incorporates:
3146 * Constant: '<S748>/PWMBDCRngFaultLimMin1'
3147 */
3148 L4_MABX_B.F_Fault_Soft_aw = (L4_MABX_B.If_Then_Else_e.Switch !=
3149 L4_MABX_P.PWMBDCRngFaultLimMin1_Value);
3150
3151 /* Logic: '<S748>/Logical Operator4' */
3152 L4_MABX_B.LogicalOperator4 = (L4_MABX_B.F_Fault_Soft_d ||
3153 L4_MABX_B.F_Fault_Soft_aw);
3154
3155 /* RelationalOperator: '<S766>/Relational Operator8' incorporates:
3156 * Constant: '<S748>/PWMBFreqRngFaultLimMax1'
3157 */
3158 L4_MABX_B.F_Fault_Hard_l = (L4_MABX_P.PWMBFreqRngFaultLimMax1_Value <=
3159 L4_MABX_B.If_Then_Else_p.Switch);
3160
3161 /* RelationalOperator: '<S765>/Relational Operator8' incorporates:
3162 * Constant: '<S748>/PWMBDCRngFaultLimMax1'
3163 */
3164 L4_MABX_B.F_Fault_Hard_c = (L4_MABX_P.PWMBDCRngFaultLimMax1_Value <=
3165 L4_MABX_B.If_Then_Else_e.Switch);
3166
3167 /* Logic: '<S748>/Logical Operator3' */
3168 L4_MABX_B.LogicalOperator3 = (L4_MABX_B.F_Fault_Hard_l ||
3169 L4_MABX_B.F_Fault_Hard_c);
3170
3171 /* Chart: '<S748>/Health State Machine PWM Sensor 2' */
3172 /* Gateway: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3173 /* During: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3174 if (L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H == 0U) {
3175 /* Entry: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3176 L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H = 1U;
3177
3178 /* Entry Internal: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3179 /* Transition: '<S762>:2' */
3180 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_FAILURE;
3181
3182 /* Entry 'NO_FAILURE': '<S762>:1' */
3183 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3184 } else if (L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter ==
3185 L4_MABX_IN_FAILURE_DETECTED) {
3186 /* During 'FAILURE_DETECTED': '<S762>:6' */
3187 if (L4_MABX_DW.is_FAILURE_DETECTED == L4_MABX_IN_ERROR) {
3188 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3189
3190 /* During 'ERROR': '<S762>:8' */
3191 if (!L4_MABX_B.LogicalOperator3) {
3192 /* Transition: '<S762>:20' */
3193 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_PENDING;
3194
3195 /* Entry 'PENDING': '<S762>:7' */
3196 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3197 }
3198 } else {
3199 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3200
3201 /* During 'PENDING': '<S762>:7' */
3202 zcEvent = ((!L4_MABX_B.LogicalOperator4) && (!L4_MABX_B.LogicalOperator3));
3203 if (zcEvent) {
3204 /* Transition: '<S762>:9' */
3205 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_NO_ACTIVE_CHILD;
3206 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_FAILURE;
3207
3208 /* Entry 'NO_FAILURE': '<S762>:1' */
3209 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3210 } else {
3211 if (L4_MABX_B.LogicalOperator3) {
3212 /* Transition: '<S762>:12' */
3213 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_ERROR;
3214
3215 /* Entry 'ERROR': '<S762>:8' */
3216 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3217 }
3218 }
3219 }
3220 } else {
3221 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3222
3223 /* During 'NO_FAILURE': '<S762>:1' */
3224 zcEvent = (L4_MABX_B.LogicalOperator4 || L4_MABX_B.LogicalOperator3);
3225 if (zcEvent) {
3226 /* Transition: '<S762>:10' */
3227 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_FAILURE_DETECTED;
3228
3229 /* Entry 'FAILURE_DETECTED': '<S762>:6' */
3230 /* Entry Internal 'FAILURE_DETECTED': '<S762>:6' */
3231 /* Transition: '<S762>:11' */
3232 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_PENDING;
3233
3234 /* Entry 'PENDING': '<S762>:7' */
3235 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3236 }
3237 }
3238
3239 /* End of Chart: '<S748>/Health State Machine PWM Sensor 2' */
3240
3241 /* RelationalOperator: '<S760>/Compare' incorporates:
3242 * Constant: '<S760>/Constant'
3243 */
3244 L4_MABX_B.Compare_m = (L4_MABX_B.Pedal_2_pwm_health_state ==
3245 L4_MABX_P.CompareToConstant2_const_m);
3246
3247 /* Logic: '<S748>/Logical Operator5' */
3248 L4_MABX_B.F_Pedal_pwm_sens_total_failure = (L4_MABX_B.Compare &&
3249 L4_MABX_B.Compare_m);
3250
3251 /* UnitDelay: '<S751>/Unit_Delay' */
3252 L4_MABX_B.Unit_Delay_bw = L4_MABX_DW.Unit_Delay_DSTATE_gn;
3253
3254 /* UnitDelay: '<S818>/Unit_Delay1' */
3255 L4_MABX_B.Unit_Delay1 = L4_MABX_DW.Unit_Delay1_DSTATE;
3256
3257 /* Logic: '<S818>/Logical Operator' */
3258 L4_MABX_B.LogicalOperator_j = (L4_MABX_B.Unit_Delay_bw ||
3259 L4_MABX_B.Unit_Delay1);
3260
3261 /* MinMax: '<S818>/MinMax1' incorporates:
3262 * Constant: '<S751>/PEDAL_PWM_SENSOR_DATA_APV.T1_CONST'
3263 * Constant: '<S751>/dT'
3264 */
3265 DeltaTime = L4_MABX_P.dT_Value;
3266 PositionFinalLimited = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVT1_CON;
3267 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3268 PositionFinalLimited = DeltaTime;
3269 }
3270
3271 L4_MABX_B.MinMax1 = PositionFinalLimited;
3272
3273 /* End of MinMax: '<S818>/MinMax1' */
3274
3275 /* Saturate: '<S818>/Saturation' */
3276 DeltaTime = L4_MABX_B.MinMax1;
3277 Time56 = L4_MABX_P.Saturation_LowerSat_g2;
3278 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_g;
3279 if (DeltaTime > PositionFinalLimited) {
3280 L4_MABX_B.Saturation = PositionFinalLimited;
3281 } else if (DeltaTime < Time56) {
3282 L4_MABX_B.Saturation = Time56;
3283 } else {
3284 L4_MABX_B.Saturation = DeltaTime;
3285 }
3286
3287 /* End of Saturate: '<S818>/Saturation' */
3288
3289 /* Product: '<S818>/Divide' incorporates:
3290 * Constant: '<S751>/dT'
3291 */
3292 L4_MABX_B.Divide = L4_MABX_P.dT_Value / L4_MABX_B.Saturation;
3293
3294 /* Product: '<S818>/Product2' */
3295 L4_MABX_B.Product2 = L4_MABX_B.Pedal_1_pwm_dc_raw_value * L4_MABX_B.Divide;
3296
3297 /* Sum: '<S818>/Subtract1' incorporates:
3298 * Constant: '<S818>/Constant1'
3299 */
3300 L4_MABX_B.Subtract1 = L4_MABX_P.Constant1_Value_fi - L4_MABX_B.Divide;
3301
3302 /* UnitDelay: '<S818>/Unit_Delay2' */
3303 L4_MABX_B.Unit_Delay2 = L4_MABX_DW.Unit_Delay2_DSTATE;
3304
3305 /* Product: '<S818>/Product1' */
3306 L4_MABX_B.Product1 = L4_MABX_B.Subtract1 * L4_MABX_B.Unit_Delay2;
3307
3308 /* Sum: '<S818>/Add1' */
3309 L4_MABX_B.Add1 = L4_MABX_B.Product2 + L4_MABX_B.Product1;
3310
3311 /* Outputs for Atomic SubSystem: '<S818>/If_Then_Else' */
3312 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_j,
3313 L4_MABX_B.Pedal_1_pwm_dc_raw_value, L4_MABX_B.Add1,
3314 &L4_MABX_B.If_Then_Else_b);
3315
3316 /* End of Outputs for SubSystem: '<S818>/If_Then_Else' */
3317
3318 /* Lookup_n-D: '<S751>/PEDAL_PWM_ANGLE_SENS_1_MPV' */
3319 L4_MABX_B.Pedal_1_pwm_undefault = look1_binlcapw
3320 (L4_MABX_B.If_Then_Else_b.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_SENS_1_MPV_bp01,
3321 L4_MABX_P.PEDAL_PWM_ANGLE_SENS_1_MPV_tabl, 7U);
3322
3323 /* UnitDelay: '<S751>/Unit_Delay1' */
3324 L4_MABX_B.Unit_Delay1_o = L4_MABX_DW.Unit_Delay1_DSTATE_e;
3325
3326 /* UnitDelay: '<S819>/Unit_Delay1' */
3327 L4_MABX_B.Unit_Delay1_j = L4_MABX_DW.Unit_Delay1_DSTATE_ef;
3328
3329 /* Logic: '<S819>/Logical Operator' */
3330 L4_MABX_B.LogicalOperator_e = (L4_MABX_B.Unit_Delay1_o ||
3331 L4_MABX_B.Unit_Delay1_j);
3332
3333 /* MinMax: '<S819>/MinMax1' incorporates:
3334 * Constant: '<S751>/PEDAL_PWM_SENSOR_DATA_APV.T2_CONST'
3335 * Constant: '<S751>/dT1'
3336 */
3337 DeltaTime = L4_MABX_P.dT1_Value;
3338 PositionFinalLimited = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVT2_CON;
3339 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3340 PositionFinalLimited = DeltaTime;
3341 }
3342
3343 L4_MABX_B.MinMax1_m = PositionFinalLimited;
3344
3345 /* End of MinMax: '<S819>/MinMax1' */
3346
3347 /* Saturate: '<S819>/Saturation' */
3348 DeltaTime = L4_MABX_B.MinMax1_m;
3349 Time56 = L4_MABX_P.Saturation_LowerSat_m;
3350 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_iw;
3351 if (DeltaTime > PositionFinalLimited) {
3352 L4_MABX_B.Saturation_p = PositionFinalLimited;
3353 } else if (DeltaTime < Time56) {
3354 L4_MABX_B.Saturation_p = Time56;
3355 } else {
3356 L4_MABX_B.Saturation_p = DeltaTime;
3357 }
3358
3359 /* End of Saturate: '<S819>/Saturation' */
3360
3361 /* Product: '<S819>/Divide' incorporates:
3362 * Constant: '<S751>/dT1'
3363 */
3364 L4_MABX_B.Divide_h = L4_MABX_P.dT1_Value / L4_MABX_B.Saturation_p;
3365
3366 /* Product: '<S819>/Product2' */
3367 L4_MABX_B.Product2_b = L4_MABX_B.Pedal_2_pwm_freq_raw_value *
3368 L4_MABX_B.Divide_h;
3369
3370 /* Sum: '<S819>/Subtract1' incorporates:
3371 * Constant: '<S819>/Constant1'
3372 */
3373 L4_MABX_B.Subtract1_h = L4_MABX_P.Constant1_Value_my - L4_MABX_B.Divide_h;
3374
3375 /* UnitDelay: '<S819>/Unit_Delay2' */
3376 L4_MABX_B.Unit_Delay2_c = L4_MABX_DW.Unit_Delay2_DSTATE_d;
3377
3378 /* Product: '<S819>/Product1' */
3379 L4_MABX_B.Product1_l = L4_MABX_B.Subtract1_h * L4_MABX_B.Unit_Delay2_c;
3380
3381 /* Sum: '<S819>/Add1' */
3382 L4_MABX_B.Add1_d = L4_MABX_B.Product2_b + L4_MABX_B.Product1_l;
3383
3384 /* Outputs for Atomic SubSystem: '<S819>/If_Then_Else' */
3385 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_e,
3386 L4_MABX_B.Pedal_2_pwm_freq_raw_value, L4_MABX_B.Add1_d,
3387 &L4_MABX_B.If_Then_Else_m);
3388
3389 /* End of Outputs for SubSystem: '<S819>/If_Then_Else' */
3390
3391 /* Lookup_n-D: '<S751>/PEDAL_PWM_ANGLE_SENS_2_MPV' */
3392 L4_MABX_B.Pedal_2_pwm_undefault = look1_binlcapw
3393 (L4_MABX_B.If_Then_Else_m.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_SENS_2_MPV_bp01,
3394 L4_MABX_P.PEDAL_PWM_ANGLE_SENS_2_MPV_tabl, 7U);
3395
3396 /* Sum: '<S753>/Subtract' */
3397 L4_MABX_B.Subtract = L4_MABX_B.Pedal_1_pwm_undefault -
3398 L4_MABX_B.Pedal_2_pwm_undefault;
3399
3400 /* Abs: '<S753>/Abs' */
3401 L4_MABX_B.Abs = fabs(L4_MABX_B.Subtract);
3402
3403 /* RelationalOperator: '<S755>/Compare' incorporates:
3404 * Constant: '<S755>/Constant'
3405 */
3406 L4_MABX_B.Compare_b = (L4_MABX_B.Pedal_1_pwm_health_state ==
3407 L4_MABX_P.CompareToConstant3_const_f);
3408
3409 /* RelationalOperator: '<S811>/Compare' incorporates:
3410 * Constant: '<S811>/Constant'
3411 */
3412 L4_MABX_B.Compare_n = (L4_MABX_B.Pedal_2_pwm_health_state ==
3413 L4_MABX_P.CompareToConstant5_const);
3414
3415 /* Logic: '<S749>/Logical Operator7' */
3416 L4_MABX_B.LogicalOperator7 = !L4_MABX_B.Compare_n;
3417
3418 /* RelationalOperator: '<S810>/Compare' incorporates:
3419 * Constant: '<S810>/Constant'
3420 */
3421 L4_MABX_B.Compare_o = (L4_MABX_B.Pedal_2_pwm_health_state ==
3422 L4_MABX_P.CompareToConstant4_const);
3423
3424 /* Logic: '<S749>/Logical Operator8' */
3425 L4_MABX_B.LogicalOperator8 = !L4_MABX_B.Compare_o;
3426
3427 /* UnitDelay: '<S817>/FixPt Unit Delay2' */
3428 L4_MABX_B.FixPtUnitDelay2_hd = L4_MABX_DW.FixPtUnitDelay2_DSTATE_n;
3429
3430 /* UnitDelay: '<S817>/FixPt Unit Delay1' */
3431 L4_MABX_B.Xold_o = L4_MABX_DW.FixPtUnitDelay1_DSTATE_hb;
3432
3433 /* Switch: '<S817>/Init' incorporates:
3434 * Constant: '<S737>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3435 */
3436 if (L4_MABX_B.FixPtUnitDelay2_hd != 0) {
3437 L4_MABX_B.Init_fq = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3438 } else {
3439 L4_MABX_B.Init_fq = L4_MABX_B.Xold_o;
3440 }
3441
3442 /* End of Switch: '<S817>/Init' */
3443
3444 /* Outputs for Atomic SubSystem: '<S749>/If_Then_Else3' */
3445 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator8,
3446 L4_MABX_B.Pedal_2_pwm_undefault, L4_MABX_B.Init_fq,
3447 &L4_MABX_B.If_Then_Else3_o);
3448
3449 /* End of Outputs for SubSystem: '<S749>/If_Then_Else3' */
3450
3451 /* Outputs for Atomic SubSystem: '<S749>/If_Then_Else2' */
3452
3453 /* Constant: '<S737>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3454 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator7,
3455 L4_MABX_B.If_Then_Else3_o.Switch,
3456 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3457 &L4_MABX_B.If_Then_Else2_c);
3458
3459 /* End of Outputs for SubSystem: '<S749>/If_Then_Else2' */
3460
3461 /* RelationalOperator: '<S809>/Compare' incorporates:
3462 * Constant: '<S809>/Constant'
3463 */
3464 L4_MABX_B.Compare_p = (L4_MABX_B.Pedal_1_pwm_health_state ==
3465 L4_MABX_P.CompareToConstant3_const_o);
3466
3467 /* Logic: '<S749>/Logical Operator5' */
3468 L4_MABX_B.LogicalOperator5 = !L4_MABX_B.Compare_p;
3469
3470 /* RelationalOperator: '<S808>/Compare' incorporates:
3471 * Constant: '<S808>/Constant'
3472 */
3473 L4_MABX_B.Compare_a = (L4_MABX_B.Pedal_1_pwm_health_state ==
3474 L4_MABX_P.CompareToConstant1_const_f);
3475
3476 /* Logic: '<S749>/Logical Operator6' */
3477 L4_MABX_B.LogicalOperator6 = !L4_MABX_B.Compare_a;
3478
3479 /* UnitDelay: '<S816>/FixPt Unit Delay2' */
3480 L4_MABX_B.FixPtUnitDelay2_a = L4_MABX_DW.FixPtUnitDelay2_DSTATE_m;
3481
3482 /* UnitDelay: '<S816>/FixPt Unit Delay1' */
3483 L4_MABX_B.Xold_k = L4_MABX_DW.FixPtUnitDelay1_DSTATE_e;
3484
3485 /* Switch: '<S816>/Init' incorporates:
3486 * Constant: '<S737>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3487 */
3488 if (L4_MABX_B.FixPtUnitDelay2_a != 0) {
3489 L4_MABX_B.Init_n = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3490 } else {
3491 L4_MABX_B.Init_n = L4_MABX_B.Xold_k;
3492 }
3493
3494 /* End of Switch: '<S816>/Init' */
3495
3496 /* Outputs for Atomic SubSystem: '<S749>/If_Then_Else1' */
3497 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator6,
3498 L4_MABX_B.Pedal_1_pwm_undefault, L4_MABX_B.Init_n,
3499 &L4_MABX_B.If_Then_Else1_i);
3500
3501 /* End of Outputs for SubSystem: '<S749>/If_Then_Else1' */
3502
3503 /* Outputs for Atomic SubSystem: '<S749>/If_Then_Else' */
3504
3505 /* Constant: '<S737>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3506 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator5,
3507 L4_MABX_B.If_Then_Else1_i.Switch,
3508 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3509 &L4_MABX_B.If_Then_Else_n);
3510
3511 /* End of Outputs for SubSystem: '<S749>/If_Then_Else' */
3512
3513 /* Outputs for Atomic SubSystem: '<S747>/If_Then_Else1' */
3514 L4_MABX_If_Then_Else(L4_MABX_B.Compare_b, L4_MABX_B.If_Then_Else2_c.Switch,
3515 L4_MABX_B.If_Then_Else_n.Switch, &L4_MABX_B.If_Then_Else1);
3516
3517 /* End of Outputs for SubSystem: '<S747>/If_Then_Else1' */
3518
3519 /* RelationalOperator: '<S754>/Compare' incorporates:
3520 * Constant: '<S754>/Constant'
3521 */
3522 L4_MABX_B.Compare_i = (L4_MABX_B.Pedal_2_pwm_health_state ==
3523 L4_MABX_P.CompareToConstant1_const_d);
3524
3525 /* Outputs for Atomic SubSystem: '<S747>/If_Then_Else2' */
3526 L4_MABX_If_Then_Else(L4_MABX_B.Compare_i, L4_MABX_B.If_Then_Else_n.Switch,
3527 L4_MABX_B.If_Then_Else2_c.Switch,
3528 &L4_MABX_B.If_Then_Else2);
3529
3530 /* End of Outputs for SubSystem: '<S747>/If_Then_Else2' */
3531
3532 /* MinMax: '<S747>/MinMax' */
3533 DeltaTime = L4_MABX_B.If_Then_Else1.Switch;
3534 PositionFinalLimited = L4_MABX_B.If_Then_Else2.Switch;
3535 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3536 PositionFinalLimited = DeltaTime;
3537 }
3538
3539 L4_MABX_B.MinMax = PositionFinalLimited;
3540
3541 /* End of MinMax: '<S747>/MinMax' */
3542
3543 /* Outputs for Atomic SubSystem: '<S747>/If_Then_Else' */
3544
3545 /* Constant: '<S737>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3546 L4_MABX_If_Then_Else(L4_MABX_B.F_Pedal_pwm_sens_total_failure,
3547 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3548 L4_MABX_B.MinMax, &L4_MABX_B.If_Then_Else_h);
3549
3550 /* End of Outputs for SubSystem: '<S747>/If_Then_Else' */
3551
3552 /* Lookup_n-D: '<S753>/PEDAL_PWM_ANGLE_DEV_MPV' */
3553 L4_MABX_B.PEDAL_PWM_ANGLE_DEV_MPV = look1_binlcapw
3554 (L4_MABX_B.If_Then_Else_h.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_DEV_MPV_bp01Dat,
3555 L4_MABX_P.PEDAL_PWM_ANGLE_DEV_MPV_tableDa, 7U);
3556
3557 /* RelationalOperator: '<S753>/Relational Operator' */
3558 L4_MABX_B.F_Pedal_pwm_sync_fault = (L4_MABX_B.Abs >
3559 L4_MABX_B.PEDAL_PWM_ANGLE_DEV_MPV);
3560
3561 /* DataTypeConversion: '<S748>/Data Type Conversion2' */
3562 L4_MABX_B.DataTypeConversion2 = L4_MABX_B.F_Pedal_pwm_sync_fault;
3563
3564 /* RelationalOperator: '<S800>/min_relop' incorporates:
3565 * Constant: '<S748>/PWMSynchRngMin'
3566 */
3567 L4_MABX_B.min_relop_c = (L4_MABX_P.PWMSynchRngMin_Value <
3568 L4_MABX_B.DataTypeConversion2);
3569
3570 /* RelationalOperator: '<S800>/max_relop' incorporates:
3571 * Constant: '<S748>/PWMSynchRngMax'
3572 */
3573 L4_MABX_B.max_relop_c = (L4_MABX_B.DataTypeConversion2 <
3574 L4_MABX_P.PWMSynchRngMax_Value);
3575
3576 /* Logic: '<S800>/conjunction' */
3577 L4_MABX_B.conjunction_m = (L4_MABX_B.min_relop_c && L4_MABX_B.max_relop_c);
3578
3579 /* UnitDelay: '<S805>/FixPt Unit Delay2' */
3580 L4_MABX_B.FixPtUnitDelay2_ok = L4_MABX_DW.FixPtUnitDelay2_DSTATE_c;
3581
3582 /* UnitDelay: '<S805>/FixPt Unit Delay1' */
3583 L4_MABX_B.Xold_m = L4_MABX_DW.FixPtUnitDelay1_DSTATE_ea;
3584
3585 /* Switch: '<S805>/Init' incorporates:
3586 * Constant: '<S748>/PWMSynchFaultLimMin'
3587 */
3588 if (L4_MABX_B.FixPtUnitDelay2_ok != 0) {
3589 L4_MABX_B.Init_m = L4_MABX_P.PWMSynchFaultLimMin_Value;
3590 } else {
3591 L4_MABX_B.Init_m = L4_MABX_B.Xold_m;
3592 }
3593
3594 /* End of Switch: '<S805>/Init' */
3595
3596 /* Sum: '<S801>/FixPt Sum1' incorporates:
3597 * Constant: '<S801>/FixPt Constant'
3598 */
3599 L4_MABX_B.FixPtSum1_b = L4_MABX_B.Init_m - L4_MABX_P.FixPtConstant_Value_c;
3600
3601 /* Sum: '<S804>/FixPt Sum1' incorporates:
3602 * Constant: '<S804>/FixPt Constant'
3603 */
3604 L4_MABX_B.FixPtSum1_b2 = L4_MABX_B.Init_m + L4_MABX_P.FixPtConstant_Value_o5;
3605
3606 /* Outputs for Atomic SubSystem: '<S767>/If_Then_Else3' */
3607 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_m, L4_MABX_B.FixPtSum1_b,
3608 L4_MABX_B.FixPtSum1_b2, &L4_MABX_B.If_Then_Else3_f);
3609
3610 /* End of Outputs for SubSystem: '<S767>/If_Then_Else3' */
3611
3612 /* RelationalOperator: '<S802>/Relational Operator1' incorporates:
3613 * Constant: '<S748>/PWMSynchFaultLimMax'
3614 */
3615 L4_MABX_B.RelationalOperator1_p = (L4_MABX_B.If_Then_Else3_f.Switch >=
3616 L4_MABX_P.PWMSynchFaultLimMax_Value);
3617
3618 /* RelationalOperator: '<S802>/Relational Operator' incorporates:
3619 * Constant: '<S748>/PWMSynchFaultLimMin'
3620 */
3621 L4_MABX_B.RelationalOperator_j = (L4_MABX_B.If_Then_Else3_f.Switch <=
3622 L4_MABX_P.PWMSynchFaultLimMin_Value);
3623
3624 /* Outputs for Atomic SubSystem: '<S802>/If_Then_Else1' */
3625
3626 /* Constant: '<S748>/PWMSynchFaultLimMin' */
3627 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_j,
3628 L4_MABX_P.PWMSynchFaultLimMin_Value,
3629 L4_MABX_B.If_Then_Else3_f.Switch,
3630 &L4_MABX_B.If_Then_Else1_k);
3631
3632 /* End of Outputs for SubSystem: '<S802>/If_Then_Else1' */
3633
3634 /* Outputs for Atomic SubSystem: '<S802>/If_Then_Else' */
3635
3636 /* Constant: '<S748>/PWMSynchFaultLimMax' */
3637 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_p,
3638 L4_MABX_P.PWMSynchFaultLimMax_Value,
3639 L4_MABX_B.If_Then_Else1_k.Switch,
3640 &L4_MABX_B.If_Then_Else_k);
3641
3642 /* End of Outputs for SubSystem: '<S802>/If_Then_Else' */
3643
3644 /* RelationalOperator: '<S767>/Relational Operator8' incorporates:
3645 * Constant: '<S748>/PWMSynchFaultLimMax'
3646 */
3647 L4_MABX_B.F_Fault_Hard_g = (L4_MABX_P.PWMSynchFaultLimMax_Value <=
3648 L4_MABX_B.If_Then_Else_k.Switch);
3649
3650 /* Logic: '<S737>/Logical Operator6' */
3651 L4_MABX_B.LogicalOperator6_p = (L4_MABX_B.F_Pedal_pwm_sens_total_failure ||
3652 L4_MABX_B.F_Fault_Hard_g);
3653
3654 /* Outputs for Enabled SubSystem: '<S737>/Slew_at_event' incorporates:
3655 * EnablePort: '<S752>/Enable'
3656 */
3657 /* Constant: '<S737>/F_PEDAL_TORQUE_SLEW_AT_FAULT' */
3658 if (L4_MABX_P.F_PEDAL_TORQUE_SLEW_AT_FAULT_Va) {
3659 if (!L4_MABX_DW.Slew_at_event_MODE) {
3660 /* InitializeConditions for UnitDelay: '<S823>/Unit_Delay' */
3661 L4_MABX_DW.Unit_Delay_DSTATE_po = L4_MABX_P.Unit_Delay_InitialCondition_ix;
3662
3663 /* InitializeConditions for UnitDelay: '<S824>/Unit_Delay' */
3664 L4_MABX_DW.Unit_Delay_DSTATE_bq = L4_MABX_P.Unit_Delay_InitialCondition_gf;
3665
3666 /* InitializeConditions for UnitDelay: '<S827>/FixPt Unit Delay2' */
3667 L4_MABX_DW.FixPtUnitDelay2_DSTATE_d =
3668 L4_MABX_P.FixPtUnitDelay2_InitialCondi_ew;
3669
3670 /* InitializeConditions for UnitDelay: '<S827>/FixPt Unit Delay1' */
3671 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g =
3672 L4_MABX_P.FixPtUnitDelay1_InitialCondi_oc;
3673
3674 /* InitializeConditions for UnitDelay: '<S822>/Unit_Delay' */
3675 L4_MABX_DW.Unit_Delay_DSTATE_c1 = L4_MABX_P.Unit_Delay_InitialCondition_kc;
3676 L4_MABX_DW.Slew_at_event_MODE = true;
3677 }
3678
3679 /* UnitDelay: '<S823>/Unit_Delay' */
3680 L4_MABX_B.Unit_Delay_bq = L4_MABX_DW.Unit_Delay_DSTATE_po;
3681
3682 /* Logic: '<S823>/Logical Operator1' */
3683 L4_MABX_B.LogicalOperator1_c = !L4_MABX_B.Unit_Delay_bq;
3684
3685 /* Logic: '<S823>/Logical Operator' */
3686 L4_MABX_B.LogicalOperator_d = (L4_MABX_B.LogicalOperator6_p &&
3687 L4_MABX_B.LogicalOperator1_c);
3688
3689 /* UnitDelay: '<S824>/Unit_Delay' */
3690 L4_MABX_B.Unit_Delay_ei = L4_MABX_DW.Unit_Delay_DSTATE_bq;
3691
3692 /* Logic: '<S824>/Logical Operator1' */
3693 L4_MABX_B.LogicalOperator1_a = (L4_MABX_B.LogicalOperator_d ||
3694 L4_MABX_B.Unit_Delay_ei);
3695
3696 /* UnitDelay: '<S827>/FixPt Unit Delay2' */
3697 L4_MABX_B.FixPtUnitDelay2_b = L4_MABX_DW.FixPtUnitDelay2_DSTATE_d;
3698
3699 /* UnitDelay: '<S827>/FixPt Unit Delay1' */
3700 L4_MABX_B.Xold_n = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g;
3701
3702 /* Switch: '<S827>/Init' incorporates:
3703 * Constant: '<S737>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3704 */
3705 if (L4_MABX_B.FixPtUnitDelay2_b != 0) {
3706 L4_MABX_B.Init_o = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3707 } else {
3708 L4_MABX_B.Init_o = L4_MABX_B.Xold_n;
3709 }
3710
3711 /* End of Switch: '<S827>/Init' */
3712
3713 /* Abs: '<S824>/Abs' incorporates:
3714 * Constant: '<S737>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_UP'
3715 */
3716 L4_MABX_B.Abs_e = fabs(L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_k);
3717
3718 /* Product: '<S824>/Product1' incorporates:
3719 * Constant: '<S737>/PEDAL_PWM_SENSOR_DATA_APV.DT'
3720 */
3721 L4_MABX_B.Product1_n = L4_MABX_B.Abs_e *
3722 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDT_Val;
3723
3724 /* Sum: '<S824>/Add1' */
3725 L4_MABX_B.Add1_p = L4_MABX_B.Init_o + L4_MABX_B.Product1_n;
3726
3727 /* MinMax: '<S824>/MinMax2' incorporates:
3728 * Constant: '<S737>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3729 */
3730 DeltaTime = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3731 PositionFinalLimited = L4_MABX_B.Add1_p;
3732 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3733 PositionFinalLimited = DeltaTime;
3734 }
3735
3736 L4_MABX_B.MinMax2 = PositionFinalLimited;
3737
3738 /* End of MinMax: '<S824>/MinMax2' */
3739
3740 /* Abs: '<S824>/Abs1' incorporates:
3741 * Constant: '<S737>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_DOWN'
3742 */
3743 L4_MABX_B.Abs1 = fabs(L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_c);
3744
3745 /* Product: '<S824>/Product2' incorporates:
3746 * Constant: '<S737>/PEDAL_PWM_SENSOR_DATA_APV.DT'
3747 */
3748 L4_MABX_B.Product2_l = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDT_Val *
3749 L4_MABX_B.Abs1;
3750
3751 /* Sum: '<S824>/Subtract1' */
3752 L4_MABX_B.Subtract1_c = L4_MABX_B.Init_o - L4_MABX_B.Product2_l;
3753
3754 /* MinMax: '<S824>/MinMax1' */
3755 DeltaTime = L4_MABX_B.MinMax2;
3756 PositionFinalLimited = L4_MABX_B.Subtract1_c;
3757 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3758 PositionFinalLimited = DeltaTime;
3759 }
3760
3761 L4_MABX_B.MinMax1_c = PositionFinalLimited;
3762
3763 /* End of MinMax: '<S824>/MinMax1' */
3764
3765 /* Outputs for Atomic SubSystem: '<S824>/If_Then_Else' */
3766 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_a,
3767 L4_MABX_B.If_Then_Else_h.Switch, L4_MABX_B.MinMax1_c,
3768 &L4_MABX_B.If_Then_Else_m3);
3769
3770 /* End of Outputs for SubSystem: '<S824>/If_Then_Else' */
3771
3772 /* Sum: '<S752>/Subtract' incorporates:
3773 * Constant: '<S737>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3774 */
3775 L4_MABX_B.Subtract_o = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL -
3776 L4_MABX_B.If_Then_Else_m3.Switch;
3777
3778 /* Abs: '<S752>/Abs' */
3779 L4_MABX_B.Abs_c = fabs(L4_MABX_B.Subtract_o);
3780
3781 /* RelationalOperator: '<S752>/Relational Operator1' incorporates:
3782 * Constant: '<S752>/Constant1'
3783 */
3784 L4_MABX_B.RelationalOperator1_g = (L4_MABX_B.Abs_c <=
3785 L4_MABX_P.Constant1_Value_l0);
3786
3787 /* Logic: '<S822>/Logical Operator3' */
3788 L4_MABX_B.LogicalOperator3_g = !L4_MABX_B.RelationalOperator1_g;
3789
3790 /* UnitDelay: '<S822>/Unit_Delay' */
3791 L4_MABX_B.Unit_Delay_jw = L4_MABX_DW.Unit_Delay_DSTATE_c1;
3792
3793 /* Logic: '<S822>/Logical Operator1' */
3794 L4_MABX_B.LogicalOperator1_f = (L4_MABX_B.LogicalOperator6_p ||
3795 L4_MABX_B.Unit_Delay_jw);
3796
3797 /* Logic: '<S822>/Logical Operator' */
3798 L4_MABX_B.LogicalOperator_g = (L4_MABX_B.LogicalOperator3_g &&
3799 L4_MABX_B.LogicalOperator1_f);
3800
3801 /* Logic: '<S822>/Logical Operator2' */
3802 L4_MABX_B.LogicalOperator2_g = !L4_MABX_B.LogicalOperator_g;
3803
3804 /* RelationalOperator: '<S825>/min_relop' incorporates:
3805 * Constant: '<S737>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_UP'
3806 * Constant: '<S825>/min_val'
3807 */
3808 L4_MABX_B.min_relop_jb = (L4_MABX_P.CheckStaticLowerBound_min_m <=
3809 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_k);
3810
3811 /* Assertion: '<S825>/Assertion' */
3812 utAssert(L4_MABX_B.min_relop_jb);
3813 } else {
3814 if (L4_MABX_DW.Slew_at_event_MODE) {
3815 /* Disable for Outport: '<S752>/F_Out_slewing' */
3816 L4_MABX_B.LogicalOperator_g = L4_MABX_P.F_Out_slewing_Y0_f;
3817
3818 /* Disable for Outport: '<S752>/Out' */
3819 L4_MABX_B.If_Then_Else_m3.Switch = L4_MABX_P.Out_Y0_p;
3820 L4_MABX_DW.Slew_at_event_MODE = false;
3821 }
3822 }
3823
3824 /* End of Constant: '<S737>/F_PEDAL_TORQUE_SLEW_AT_FAULT' */
3825 /* End of Outputs for SubSystem: '<S737>/Slew_at_event' */
3826
3827 /* Outputs for Atomic SubSystem: '<S737>/If_Then_Else' */
3828 L4_MABX_If_Then_Else_gn(L4_MABX_B.LogicalOperator_g,
3829 L4_MABX_B.If_Then_Else_m3.Switch, L4_MABX_B.If_Then_Else_h.Switch);
3830
3831 /* End of Outputs for SubSystem: '<S737>/If_Then_Else' */
3832
3833 /* S-Function (rti_commonblock): '<S727>/S-Function1' */
3834 /* This comment workarounds a code generation problem */
3835 {
3836 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
3837 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
3838 ADC_TP4_CH3,
3839 (dsfloat *)&L4_MABX_B.SFunction1);
3840 }
3841
3842 /* Gain: '<S411>/KL15_Monitor' */
3843 L4_MABX_B.IgnitionKeySwitch_voltage = L4_MABX_P.KL15_Monitor_Gain *
3844 L4_MABX_B.SFunction1;
3845
3846 /* Outputs for Enabled SubSystem: '<S502>/CCVS1_31' incorporates:
3847 * EnablePort: '<S503>/Enable'
3848 */
3849 /* Constant: '<S425>/Constant' */
3850 if (L4_MABX_P.Constant_Value_bx) {
3851 /* S-Function (rti_commonblock): '<S503>/S-Function1' */
3852 /* This comment workarounds a code generation problem */
3853
3854 /* dSPACE RTICAN RX Message Block: "CCVS1_31" Id:419361073 */
3855 {
3856 UInt32 *CAN_Msg;
3857 static dsfloat time_old = 0.0;
3858
3859 /* Read status and timestamp info (previous message) */
3860 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].timestamp !=
3861 time_old) {
3862 /* ... save timestamp info for the calculation of the RX status
3863 during the consecutive sample hit*/
3864 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].
3865 timestamp;
3866
3867 /* ... set the processed flag to one */
3868 L4_MABX_B.SFunction1_o21_m = 1.0;
3869 L4_MABX_B.SFunction1_o22_lf = (real_T)
3870 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].timestamp;
3871 L4_MABX_B.SFunction1_o23_o = (real_T)
3872 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].deltatime;
3873 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].data;
3874
3875 /* Decode CAN message */
3876 {
3877 {
3878 rtican_Signal_t CAN_Sgn;
3879
3880 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
3881 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3882 CAN_Sgn.UnsignedSgn &= 0x00000003;
3883 L4_MABX_B.SFunction1_o1_hh = ((real_T) CAN_Sgn.UnsignedSgn);
3884
3885 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
3886 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3887 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3888 CAN_Sgn.UnsignedSgn &= 0x00000003;
3889 L4_MABX_B.SFunction1_o2_mkm = ((real_T) CAN_Sgn.UnsignedSgn);
3890
3891 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
3892 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3893 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3894 CAN_Sgn.UnsignedSgn &= 0x00000003;
3895 L4_MABX_B.SFunction1_o3_o5 = ((real_T) CAN_Sgn.UnsignedSgn);
3896
3897 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
3898 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3899 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3900 CAN_Sgn.UnsignedSgn &= 0x00000003;
3901 L4_MABX_B.SFunction1_o4_k0 = ((real_T) CAN_Sgn.UnsignedSgn);
3902
3903 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
3904 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
3905 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
3906 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
3907 L4_MABX_B.SFunction1_o5_hg = 0.00390625 * ( ((real_T)
3908 CAN_Sgn.UnsignedSgn) );
3909
3910 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
3911 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3912 CAN_Sgn.UnsignedSgn &= 0x00000003;
3913 L4_MABX_B.SFunction1_o6_hl = ((real_T) CAN_Sgn.UnsignedSgn);
3914
3915 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
3916 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3917 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3918 CAN_Sgn.UnsignedSgn &= 0x00000003;
3919 L4_MABX_B.SFunction1_o7_l0 = ((real_T) CAN_Sgn.UnsignedSgn);
3920
3921 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
3922 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3923 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3924 CAN_Sgn.UnsignedSgn &= 0x00000003;
3925 L4_MABX_B.SFunction1_o8_o = ((real_T) CAN_Sgn.UnsignedSgn);
3926
3927 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
3928 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3929 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3930 CAN_Sgn.UnsignedSgn &= 0x00000003;
3931 L4_MABX_B.SFunction1_o9_f0 = ((real_T) CAN_Sgn.UnsignedSgn);
3932
3933 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
3934 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3935 CAN_Sgn.UnsignedSgn &= 0x00000003;
3936 L4_MABX_B.SFunction1_o10_f = ((real_T) CAN_Sgn.UnsignedSgn);
3937
3938 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
3939 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3940 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3941 CAN_Sgn.UnsignedSgn &= 0x00000003;
3942 L4_MABX_B.SFunction1_o11_j = ((real_T) CAN_Sgn.UnsignedSgn);
3943
3944 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
3945 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3946 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3947 CAN_Sgn.UnsignedSgn &= 0x00000003;
3948 L4_MABX_B.SFunction1_o12_of = ((real_T) CAN_Sgn.UnsignedSgn);
3949
3950 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
3951 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3952 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3953 CAN_Sgn.UnsignedSgn &= 0x00000003;
3954 L4_MABX_B.SFunction1_o13_i = ((real_T) CAN_Sgn.UnsignedSgn);
3955
3956 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
3957 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
3958 CAN_Sgn.UnsignedSgn &= 0x000000FF;
3959 L4_MABX_B.SFunction1_o14_b = ((real_T) CAN_Sgn.UnsignedSgn);
3960
3961 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
3962 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
3963 CAN_Sgn.UnsignedSgn &= 0x0000001F;
3964 L4_MABX_B.SFunction1_o15_c = ((real_T) CAN_Sgn.UnsignedSgn);
3965
3966 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
3967 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
3968 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 5;
3969 CAN_Sgn.UnsignedSgn &= 0x00000007;
3970 L4_MABX_B.SFunction1_o16_a = ((real_T) CAN_Sgn.UnsignedSgn);
3971
3972 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
3973 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3974 CAN_Sgn.UnsignedSgn &= 0x00000003;
3975 L4_MABX_B.SFunction1_o17_hh = ((real_T) CAN_Sgn.UnsignedSgn);
3976
3977 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
3978 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3979 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3980 CAN_Sgn.UnsignedSgn &= 0x00000003;
3981 L4_MABX_B.SFunction1_o18_b = ((real_T) CAN_Sgn.UnsignedSgn);
3982
3983 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
3984 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3985 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3986 CAN_Sgn.UnsignedSgn &= 0x00000003;
3987 L4_MABX_B.SFunction1_o19_m = ((real_T) CAN_Sgn.UnsignedSgn);
3988
3989 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
3990 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3991 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3992 CAN_Sgn.UnsignedSgn &= 0x00000003;
3993 L4_MABX_B.SFunction1_o20_c = ((real_T) CAN_Sgn.UnsignedSgn);
3994 }
3995 }
3996 } else {
3997 /* set RX status to 0 because no new message has arrived */
3998 L4_MABX_B.SFunction1_o21_m = 0.0;
3999 }
4000 }
4001 }
4002
4003 /* End of Constant: '<S425>/Constant' */
4004 /* End of Outputs for SubSystem: '<S502>/CCVS1_31' */
4005
4006 /* Outputs for Enabled SubSystem: '<S513>/EBC2_0B1' incorporates:
4007 * EnablePort: '<S514>/Enable'
4008 */
4009 /* Constant: '<S430>/Enable_RX_EBC2_0B' */
4010 if (L4_MABX_P.Enable_RX_EBC2_0B_Value) {
4011 /* S-Function (rti_commonblock): '<S514>/S-Function1' */
4012 /* This comment workarounds a code generation problem */
4013
4014 /* dSPACE RTICAN RX Message Block: "EBC2_0B" Id:419348235 */
4015 {
4016 UInt32 *CAN_Msg;
4017 static dsfloat time_old = 0.0;
4018
4019 /* Read status and timestamp info (previous message) */
4020 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].timestamp !=
4021 time_old) {
4022 /* ... save timestamp info for the calculation of the RX status
4023 during the consecutive sample hit*/
4024 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].
4025 timestamp;
4026
4027 /* ... set the processed flag to one */
4028 L4_MABX_B.SFunction1_o8_nv = 1.0;
4029 L4_MABX_B.SFunction1_o9_a2 = (real_T)
4030 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].timestamp;
4031 L4_MABX_B.SFunction1_o10_a = (real_T)
4032 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].deltatime;
4033 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].data;
4034
4035 /* Decode CAN message */
4036 {
4037 {
4038 rtican_Signal_t CAN_Sgn;
4039
4040 /* ...... "FrontAxleSpeed" (0|16, standard signal, unsigned int, little endian) */
4041 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4042 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
4043 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4044 L4_MABX_B.SFunction1_o1_m1 = 0.00390625 * ( ((real_T)
4045 CAN_Sgn.UnsignedSgn) );
4046
4047 /* ...... "RelativeSpeedFrontAxleLeftWheel" (16|8, standard signal, unsigned int, little endian) */
4048 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4049 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4050 L4_MABX_B.SFunction1_o2_fi = -7.8125 + ( 0.0625 * ( ((real_T)
4051 CAN_Sgn.UnsignedSgn) ) );
4052
4053 /* ...... "RlativeSpeedFrontAxleRightWheel" (24|8, standard signal, unsigned int, little endian) */
4054 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4055 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4056 L4_MABX_B.SFunction1_o3_ja = -7.8125 + ( 0.0625 * ( ((real_T)
4057 CAN_Sgn.UnsignedSgn) ) );
4058
4059 /* ...... "RelativeSpeedRearAxle1LeftWheel" (32|8, standard signal, unsigned int, little endian) */
4060 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4061 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4062 L4_MABX_B.SFunction1_o4_mc = -7.8125 + ( 0.0625 * ( ((real_T)
4063 CAN_Sgn.UnsignedSgn) ) );
4064
4065 /* ...... "RlativeSpeedRearAxle1RightWheel" (40|8, standard signal, unsigned int, little endian) */
4066 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4067 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4068 L4_MABX_B.SFunction1_o5_i5 = -7.8125 + ( 0.0625 * ( ((real_T)
4069 CAN_Sgn.UnsignedSgn) ) );
4070
4071 /* ...... "RelativeSpeedRearAxle2LeftWheel" (48|8, standard signal, unsigned int, little endian) */
4072 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4073 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4074 L4_MABX_B.SFunction1_o6_b5 = -7.8125 + ( 0.0625 * ( ((real_T)
4075 CAN_Sgn.UnsignedSgn) ) );
4076
4077 /* ...... "RlativeSpeedRearAxle2RightWheel" (56|8, standard signal, unsigned int, little endian) */
4078 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4079 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4080 L4_MABX_B.SFunction1_o7_e = -7.8125 + ( 0.0625 * ( ((real_T)
4081 CAN_Sgn.UnsignedSgn) ) );
4082 }
4083 }
4084 } else {
4085 /* set RX status to 0 because no new message has arrived */
4086 L4_MABX_B.SFunction1_o8_nv = 0.0;
4087 }
4088 }
4089 }
4090
4091 /* End of Constant: '<S430>/Enable_RX_EBC2_0B' */
4092 /* End of Outputs for SubSystem: '<S513>/EBC2_0B1' */
4093
4094 /* Outputs for Enabled SubSystem: '<S571>/HRW_0B' incorporates:
4095 * EnablePort: '<S572>/Enable'
4096 */
4097 /* Constant: '<S437>/Enable_HRW_RX_0B' */
4098 if (L4_MABX_P.Enable_HRW_RX_0B_Value) {
4099 /* S-Function (rti_commonblock): '<S572>/S-Function1' */
4100 /* This comment workarounds a code generation problem */
4101
4102 /* dSPACE RTICAN RX Message Block: "HRW_0B" Id:150892043 */
4103 {
4104 UInt32 *CAN_Msg;
4105 static dsfloat time_old = 0.0;
4106
4107 /* Read status and timestamp info (previous message) */
4108 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].timestamp !=
4109 time_old) {
4110 /* ... save timestamp info for the calculation of the RX status
4111 during the consecutive sample hit*/
4112 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].
4113 timestamp;
4114
4115 /* ... set the processed flag to one */
4116 L4_MABX_B.SFunction1_o5_lx = 1.0;
4117 L4_MABX_B.SFunction1_o6_om3 = (real_T)
4118 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].timestamp;
4119 L4_MABX_B.SFunction1_o7_k = (real_T)
4120 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].deltatime;
4121 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].data;
4122
4123 /* Decode CAN message */
4124 {
4125 {
4126 rtican_Signal_t CAN_Sgn;
4127
4128 /* ...... "FrontAxleLeftWheelSpeed" (0|16, standard signal, unsigned int, little endian) */
4129 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4130 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
4131 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4132 L4_MABX_B.SFunction1_o1_fb = 0.00390625 * ( ((real_T)
4133 CAN_Sgn.UnsignedSgn) );
4134
4135 /* ...... "FrontAxleRightWheelSpeed" (16|16, standard signal, unsigned int, little endian) */
4136 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4137 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
4138 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4139 L4_MABX_B.SFunction1_o2_fs = 0.00390625 * ( ((real_T)
4140 CAN_Sgn.UnsignedSgn) );
4141
4142 /* ...... "RearAxleLeftWheelSpeed" (32|16, standard signal, unsigned int, little endian) */
4143 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4144 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
4145 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4146 L4_MABX_B.SFunction1_o3_pm = 0.00390625 * ( ((real_T)
4147 CAN_Sgn.UnsignedSgn) );
4148
4149 /* ...... "RearAxleRightWheelSpeed" (48|16, standard signal, unsigned int, little endian) */
4150 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4151 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
4152 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4153 L4_MABX_B.SFunction1_o4_od = 0.00390625 * ( ((real_T)
4154 CAN_Sgn.UnsignedSgn) );
4155 }
4156 }
4157 } else {
4158 /* set RX status to 0 because no new message has arrived */
4159 L4_MABX_B.SFunction1_o5_lx = 0.0;
4160 }
4161 }
4162 }
4163
4164 /* End of Constant: '<S437>/Enable_HRW_RX_0B' */
4165 /* End of Outputs for SubSystem: '<S571>/HRW_0B' */
4166
4167 /* Outputs for Enabled SubSystem: '<S511>/EBC1_0B' incorporates:
4168 * EnablePort: '<S512>/Enable'
4169 */
4170 /* Constant: '<S429>/Constant1' */
4171 if (L4_MABX_P.Constant1_Value_kx) {
4172 /* S-Function (rti_commonblock): '<S512>/S-Function1' */
4173 /* This comment workarounds a code generation problem */
4174
4175 /* dSPACE RTICAN RX Message Block: "EBC1_0B" Id:418382219 */
4176 {
4177 UInt32 *CAN_Msg;
4178 static dsfloat time_old = 0.0;
4179
4180 /* Read status and timestamp info (previous message) */
4181 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].timestamp !=
4182 time_old) {
4183 /* ... save timestamp info for the calculation of the RX status
4184 during the consecutive sample hit*/
4185 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].
4186 timestamp;
4187
4188 /* ... set the processed flag to one */
4189 L4_MABX_B.SFunction1_o23_n = 1.0;
4190 L4_MABX_B.SFunction1_o24_p = (real_T)
4191 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].timestamp;
4192 L4_MABX_B.SFunction1_o25_c = (real_T)
4193 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].deltatime;
4194 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].data;
4195
4196 /* Decode CAN message */
4197 {
4198 {
4199 rtican_Signal_t CAN_Sgn;
4200
4201 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
4202 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4203 CAN_Sgn.UnsignedSgn &= 0x00000003;
4204 L4_MABX_B.SFunction1_o1_no = ((real_T) CAN_Sgn.UnsignedSgn);
4205
4206 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
4207 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4208 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4209 CAN_Sgn.UnsignedSgn &= 0x00000003;
4210 L4_MABX_B.SFunction1_o2_gg = ((real_T) CAN_Sgn.UnsignedSgn);
4211
4212 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
4213 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4214 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4215 CAN_Sgn.UnsignedSgn &= 0x00000003;
4216 L4_MABX_B.SFunction1_o3_pd = ((real_T) CAN_Sgn.UnsignedSgn);
4217
4218 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
4219 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4220 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4221 CAN_Sgn.UnsignedSgn &= 0x00000003;
4222 L4_MABX_B.SFunction1_o4_edl = ((real_T) CAN_Sgn.UnsignedSgn);
4223
4224 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
4225 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4226 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4227 L4_MABX_B.SFunction1_o5_ma = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4228
4229 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
4230 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4231 CAN_Sgn.UnsignedSgn &= 0x00000003;
4232 L4_MABX_B.SFunction1_o6_n = ((real_T) CAN_Sgn.UnsignedSgn);
4233
4234 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
4235 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4236 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4237 CAN_Sgn.UnsignedSgn &= 0x00000003;
4238 L4_MABX_B.SFunction1_o7_e3 = ((real_T) CAN_Sgn.UnsignedSgn);
4239
4240 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
4241 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4242 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4243 CAN_Sgn.UnsignedSgn &= 0x00000003;
4244 L4_MABX_B.SFunction1_o8_ff = ((real_T) CAN_Sgn.UnsignedSgn);
4245
4246 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
4247 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4248 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4249 CAN_Sgn.UnsignedSgn &= 0x00000003;
4250 L4_MABX_B.SFunction1_o9_cr = ((real_T) CAN_Sgn.UnsignedSgn);
4251
4252 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
4253 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4254 CAN_Sgn.UnsignedSgn &= 0x00000003;
4255 L4_MABX_B.SFunction1_o10_pe = ((real_T) CAN_Sgn.UnsignedSgn);
4256
4257 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
4258 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4259 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4260 CAN_Sgn.UnsignedSgn &= 0x00000003;
4261 L4_MABX_B.SFunction1_o11_p = ((real_T) CAN_Sgn.UnsignedSgn);
4262
4263 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
4264 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4265 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4266 CAN_Sgn.UnsignedSgn &= 0x00000003;
4267 L4_MABX_B.SFunction1_o12_k = ((real_T) CAN_Sgn.UnsignedSgn);
4268
4269 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
4270 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4271 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4272 CAN_Sgn.UnsignedSgn &= 0x00000003;
4273 L4_MABX_B.SFunction1_o13_cs = ((real_T) CAN_Sgn.UnsignedSgn);
4274
4275 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
4276 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4277 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4278 L4_MABX_B.SFunction1_o14_e = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4279
4280 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
4281 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4282 CAN_Sgn.UnsignedSgn &= 0x00000003;
4283 L4_MABX_B.SFunction1_o15_o = ((real_T) CAN_Sgn.UnsignedSgn);
4284
4285 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
4286 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4287 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4288 CAN_Sgn.UnsignedSgn &= 0x00000003;
4289 L4_MABX_B.SFunction1_o16_g = ((real_T) CAN_Sgn.UnsignedSgn);
4290
4291 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
4292 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4293 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4294 CAN_Sgn.UnsignedSgn &= 0x00000003;
4295 L4_MABX_B.SFunction1_o17_m = ((real_T) CAN_Sgn.UnsignedSgn);
4296
4297 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
4298 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4299 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4300 CAN_Sgn.UnsignedSgn &= 0x00000003;
4301 L4_MABX_B.SFunction1_o18_f = ((real_T) CAN_Sgn.UnsignedSgn);
4302
4303 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
4304 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4305 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4306 L4_MABX_B.SFunction1_o19_i = ((real_T) CAN_Sgn.UnsignedSgn);
4307
4308 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
4309 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4310 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4311 CAN_Sgn.UnsignedSgn &= 0x00000003;
4312 L4_MABX_B.SFunction1_o20_d = ((real_T) CAN_Sgn.UnsignedSgn);
4313
4314 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
4315 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4316 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4317 CAN_Sgn.UnsignedSgn &= 0x00000003;
4318 L4_MABX_B.SFunction1_o21_b = ((real_T) CAN_Sgn.UnsignedSgn);
4319
4320 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
4321 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4322 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4323 CAN_Sgn.UnsignedSgn &= 0x00000003;
4324 L4_MABX_B.SFunction1_o22_l = ((real_T) CAN_Sgn.UnsignedSgn);
4325 }
4326 }
4327 } else {
4328 /* set RX status to 0 because no new message has arrived */
4329 L4_MABX_B.SFunction1_o23_n = 0.0;
4330 }
4331 }
4332 }
4333
4334 /* End of Constant: '<S429>/Constant1' */
4335 /* End of Outputs for SubSystem: '<S511>/EBC1_0B' */
4336
4337 /* Outputs for Enabled SubSystem: '<S566>/ETC2_031' incorporates:
4338 * EnablePort: '<S567>/Enable'
4339 */
4340 /* Constant: '<S435>/Enable_RX_ETC2_03' */
4341 if (L4_MABX_P.Enable_RX_ETC2_03_Value) {
4342 /* S-Function (rti_commonblock): '<S567>/S-Function1' */
4343 /* This comment workarounds a code generation problem */
4344
4345 /* dSPACE RTICAN RX Message Block: "ETC2_03" Id:418383107 */
4346 {
4347 UInt32 *CAN_Msg;
4348 static dsfloat time_old = 0.0;
4349
4350 /* Read status and timestamp info (previous message) */
4351 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].timestamp !=
4352 time_old) {
4353 /* ... save timestamp info for the calculation of the RX status
4354 during the consecutive sample hit*/
4355 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].
4356 timestamp;
4357
4358 /* ... set the processed flag to one */
4359 L4_MABX_B.SFunction1_o4_m2 = 1.0;
4360 L4_MABX_B.SFunction1_o5_ks = (real_T)
4361 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].timestamp;
4362 L4_MABX_B.SFunction1_o6_dg = (real_T)
4363 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].deltatime;
4364 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].data;
4365
4366 /* Decode CAN message */
4367 {
4368 {
4369 rtican_Signal_t CAN_Sgn;
4370
4371 /* ...... "SPN524_TransSelectedGear" (0|8, standard signal, unsigned int, little endian) */
4372 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4373 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4374 L4_MABX_B.SFunction1_o1_pz = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4375 );
4376
4377 /* ...... "SPN526_TransActualGearRatio" (8|16, standard signal, unsigned int, little endian) */
4378 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4379 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
4380 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4381 L4_MABX_B.SFunction1_o2_or = 0.001 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4382 );
4383
4384 /* ...... "SPN523_TransCurrentGear" (24|8, standard signal, unsigned int, little endian) */
4385 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4386 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4387 L4_MABX_B.SFunction1_o3_e0 = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4388 );
4389 }
4390 }
4391 } else {
4392 /* set RX status to 0 because no new message has arrived */
4393 L4_MABX_B.SFunction1_o4_m2 = 0.0;
4394 }
4395 }
4396 }
4397
4398 /* End of Constant: '<S435>/Enable_RX_ETC2_03' */
4399 /* End of Outputs for SubSystem: '<S566>/ETC2_031' */
4400
4401 /* DataTypeConversion: '<S566>/Data Type Conversion1' */
4402 L4_MABX_B.SPN524_TransSelectedGear = L4_MABX_B.SFunction1_o1_pz;
4403
4404 /* DataTypeConversion: '<S566>/Data Type Conversion2' */
4405 L4_MABX_B.SPN523_TransCurrentGear = L4_MABX_B.SFunction1_o3_e0;
4406
4407 /* DataTypeConversion: '<S566>/Data Type Conversion3' */
4408 L4_MABX_B.SPN526_TransActualGearRatio = L4_MABX_B.SFunction1_o2_or;
4409
4410 /* Outputs for Enabled SubSystem: '<S560>/EEC1_001' incorporates:
4411 * EnablePort: '<S561>/Enable'
4412 */
4413 /* Constant: '<S432>/Enable_RX_EEC1_00' */
4414 if (L4_MABX_P.Enable_RX_EEC1_00_Value) {
4415 /* S-Function (rti_commonblock): '<S561>/S-Function1' */
4416 /* This comment workarounds a code generation problem */
4417
4418 /* dSPACE RTICAN RX Message Block: "EEC1_00" Id:217056256 */
4419 {
4420 UInt32 *CAN_Msg;
4421 static dsfloat time_old = 0.0;
4422
4423 /* Read status and timestamp info (previous message) */
4424 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].timestamp !=
4425 time_old) {
4426 /* ... save timestamp info for the calculation of the RX status
4427 during the consecutive sample hit*/
4428 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].
4429 timestamp;
4430
4431 /* ... set the processed flag to one */
4432 L4_MABX_B.SFunction1_o9_c = 1.0;
4433 L4_MABX_B.SFunction1_o10_e = (real_T)
4434 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].timestamp;
4435 L4_MABX_B.SFunction1_o11_n1 = (real_T)
4436 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].deltatime;
4437 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].data;
4438
4439 /* Decode CAN message */
4440 {
4441 {
4442 rtican_Signal_t CAN_Sgn;
4443
4444 /* ...... "EngTorqueMode" (0|4, standard signal, unsigned int, little endian) */
4445 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4446 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4447 L4_MABX_B.SFunction1_o1_k4 = ((real_T) CAN_Sgn.UnsignedSgn);
4448
4449 /* ...... "ActlEngPrcntTrqueHighResolution" (4|4, standard signal, unsigned int, little endian) */
4450 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4451 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4452 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4453 L4_MABX_B.SFunction1_o2_mk = 0.125 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4454 );
4455
4456 /* ...... "DriversDemandEngPercentTorque" (8|8, standard signal, unsigned int, little endian) */
4457 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4458 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4459 L4_MABX_B.SFunction1_o3_gns = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4460 );
4461
4462 /* ...... "ActualEngPercentTorque" (16|8, standard signal, unsigned int, little endian) */
4463 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4464 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4465 L4_MABX_B.SFunction1_o4_kr = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4466 );
4467
4468 /* ...... "EngSpeed" (24|16, standard signal, unsigned int, little endian) */
4469 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4470 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
4471 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4472 L4_MABX_B.SFunction1_o5_j3 = 0.125 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4473 );
4474
4475 /* ...... "SrcAddrssOfCtrllngDvcFrEngCntrl" (40|8, standard signal, unsigned int, little endian) */
4476 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4477 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4478 L4_MABX_B.SFunction1_o6_gn = ((real_T) CAN_Sgn.UnsignedSgn);
4479
4480 /* ...... "EngStarterMode" (48|4, standard signal, unsigned int, little endian) */
4481 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4482 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4483 L4_MABX_B.SFunction1_o7_cb = ((real_T) CAN_Sgn.UnsignedSgn);
4484
4485 /* ...... "EngDemandPercentTorque" (56|8, standard signal, unsigned int, little endian) */
4486 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4487 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4488 L4_MABX_B.SFunction1_o8_a = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
4489 }
4490 }
4491 } else {
4492 /* set RX status to 0 because no new message has arrived */
4493 L4_MABX_B.SFunction1_o9_c = 0.0;
4494 }
4495 }
4496 }
4497
4498 /* End of Constant: '<S432>/Enable_RX_EEC1_00' */
4499 /* End of Outputs for SubSystem: '<S560>/EEC1_001' */
4500
4501 /* Outputs for Enabled SubSystem: '<S564>/EEC3_001' incorporates:
4502 * EnablePort: '<S565>/Enable'
4503 */
4504 /* Constant: '<S434>/Enable_RX_EEC3_00' */
4505 if (L4_MABX_P.Enable_RX_EEC3_00_Value) {
4506 /* S-Function (rti_commonblock): '<S565>/S-Function1' */
4507 /* This comment workarounds a code generation problem */
4508
4509 /* dSPACE RTICAN RX Message Block: "EEC3_00" Id:419356416 */
4510 {
4511 UInt32 *CAN_Msg;
4512 static dsfloat time_old = 0.0;
4513
4514 /* Read status and timestamp info (previous message) */
4515 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].timestamp !=
4516 time_old) {
4517 /* ... save timestamp info for the calculation of the RX status
4518 during the consecutive sample hit*/
4519 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].
4520 timestamp;
4521
4522 /* ... set the processed flag to one */
4523 L4_MABX_B.SFunction1_o3_ex = 1.0;
4524 L4_MABX_B.SFunction1_o4_mu = (real_T)
4525 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].timestamp;
4526 L4_MABX_B.SFunction1_o5_m = (real_T)
4527 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].deltatime;
4528 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].data;
4529
4530 /* Decode CAN message */
4531 {
4532 {
4533 rtican_Signal_t CAN_Sgn;
4534
4535 /* ...... "SPN514_NominalFrictionPercentTorque" (0|8, standard signal, unsigned int, little endian) */
4536 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4537 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4538 L4_MABX_B.SFunction1_o1_kg = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4539 );
4540
4541 /* ...... "SPN2978_EstEngParasiticLossesPercentTorque" (32|8, standard signal, unsigned int, little endian) */
4542 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4543 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4544 L4_MABX_B.SFunction1_o2_g2 = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4545 );
4546 }
4547 }
4548 } else {
4549 /* set RX status to 0 because no new message has arrived */
4550 L4_MABX_B.SFunction1_o3_ex = 0.0;
4551 }
4552 }
4553 }
4554
4555 /* End of Constant: '<S434>/Enable_RX_EEC3_00' */
4556 /* End of Outputs for SubSystem: '<S564>/EEC3_001' */
4557
4558 /* DataTypeConversion: '<S564>/Data Type Conversion2' */
4559 L4_MABX_B.SPN514_NominalFrictionPercentTo = L4_MABX_B.SFunction1_o1_kg;
4560
4561 /* DataTypeConversion: '<S564>/Data Type Conversion1' */
4562 L4_MABX_B.SPN2978_EstEngParasiticLossesPe = L4_MABX_B.SFunction1_o2_g2;
4563
4564 /* Outputs for Enabled SubSystem: '<S507>/CVW_0B1' incorporates:
4565 * EnablePort: '<S508>/Enable'
4566 */
4567 /* Constant: '<S427>/Constant' */
4568 if (L4_MABX_P.Constant_Value_kq5) {
4569 /* S-Function (rti_commonblock): '<S508>/S-Function1' */
4570 /* This comment workarounds a code generation problem */
4571
4572 /* dSPACE RTICAN RX Message Block: "CVW_0B" Id:419328011 */
4573 {
4574 UInt32 *CAN_Msg;
4575 static dsfloat time_old = 0.0;
4576
4577 /* Read status and timestamp info (previous message) */
4578 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].timestamp !=
4579 time_old) {
4580 /* ... save timestamp info for the calculation of the RX status
4581 during the consecutive sample hit*/
4582 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].
4583 timestamp;
4584
4585 /* ... set the processed flag to one */
4586 L4_MABX_B.SFunction1_o2_hd = 1.0;
4587 L4_MABX_B.SFunction1_o3_ac = (real_T)
4588 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].timestamp;
4589 L4_MABX_B.SFunction1_o4_ev = (real_T)
4590 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].deltatime;
4591 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].data;
4592
4593 /* Decode CAN message */
4594 {
4595 {
4596 rtican_Signal_t CAN_Sgn;
4597
4598 /* ...... "SPN1760_GrossCombinationVehicleWeight" (16|16, standard signal, unsigned int, little endian) */
4599 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4600 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
4601 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4602 L4_MABX_B.SFunction1_o1_e = 10 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4603 }
4604 }
4605 } else {
4606 /* set RX status to 0 because no new message has arrived */
4607 L4_MABX_B.SFunction1_o2_hd = 0.0;
4608 }
4609 }
4610 }
4611
4612 /* End of Constant: '<S427>/Constant' */
4613 /* End of Outputs for SubSystem: '<S507>/CVW_0B1' */
4614
4615 /* DataTypeConversion: '<S507>/Data Type Conversion1' */
4616 L4_MABX_B.SPN1760_GrossCombinationVehicle = L4_MABX_B.SFunction1_o1_e;
4617
4618 /* Outputs for Enabled SubSystem: '<S488>/ACC1_2A_' incorporates:
4619 * EnablePort: '<S489>/Enable'
4620 */
4621 /* Constant: '<S418>/Constant' */
4622 if (L4_MABX_P.Constant_Value_bp) {
4623 /* S-Function (rti_commonblock): '<S489>/S-Function1' */
4624 /* This comment workarounds a code generation problem */
4625
4626 /* dSPACE RTICAN RX Message Block: "ACC1_2A" Id:285110058 */
4627 {
4628 UInt32 *CAN_Msg;
4629 static dsfloat time_old = 0.0;
4630
4631 /* Read status and timestamp info (previous message) */
4632 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].timestamp !=
4633 time_old) {
4634 /* ... save timestamp info for the calculation of the RX status
4635 during the consecutive sample hit*/
4636 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].
4637 timestamp;
4638
4639 /* ... set the processed flag to one */
4640 L4_MABX_B.SFunction1_o11_fw = 1.0;
4641 L4_MABX_B.SFunction1_o12_m = (real_T)
4642 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].timestamp;
4643 L4_MABX_B.SFunction1_o13_cn = (real_T)
4644 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].deltatime;
4645 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].data;
4646
4647 /* Decode CAN message */
4648 {
4649 {
4650 rtican_Signal_t CAN_Sgn;
4651
4652 /* ...... "SpeedOfForwardVehicle" (0|8, standard signal, unsigned int, little endian) */
4653 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4654 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4655 L4_MABX_B.SFunction1_o1_lt = ((real_T) CAN_Sgn.UnsignedSgn);
4656
4657 /* ...... "DistanceToForwardVehicle" (8|8, standard signal, unsigned int, little endian) */
4658 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4659 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4660 L4_MABX_B.SFunction1_o2_c2 = ((real_T) CAN_Sgn.UnsignedSgn);
4661
4662 /* ...... "AdaptiveCruiseCtrlSetSpeed" (16|8, standard signal, unsigned int, little endian) */
4663 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4664 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4665 L4_MABX_B.SFunction1_o3_nw = ((real_T) CAN_Sgn.UnsignedSgn);
4666
4667 /* ...... "AdaptiveCruiseCtrlMode" (24|3, standard signal, unsigned int, little endian) */
4668 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4669 CAN_Sgn.UnsignedSgn &= 0x00000007;
4670 L4_MABX_B.SFunction1_o4_moy = ((real_T) CAN_Sgn.UnsignedSgn);
4671
4672 /* ...... "AdptveCruiseCtrlSetDistanceMode" (27|3, standard signal, unsigned int, little endian) */
4673 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4674 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
4675 CAN_Sgn.UnsignedSgn &= 0x00000007;
4676 L4_MABX_B.SFunction1_o5_es = ((real_T) CAN_Sgn.UnsignedSgn);
4677
4678 /* ...... "RoadCurvature" (32|16, standard signal, unsigned int, little endian) */
4679 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4680 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
4681 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4682 L4_MABX_B.SFunction1_o6_i = -250 + ( 0.0078125 * ( ((real_T)
4683 CAN_Sgn.UnsignedSgn) ) );
4684
4685 /* ...... "ACCTargetDetected" (48|2, standard signal, unsigned int, little endian) */
4686 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4687 CAN_Sgn.UnsignedSgn &= 0x00000003;
4688 L4_MABX_B.SFunction1_o7_i1 = ((real_T) CAN_Sgn.UnsignedSgn);
4689
4690 /* ...... "ACCSystemShutoffWarning" (50|2, standard signal, unsigned int, little endian) */
4691 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4692 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4693 CAN_Sgn.UnsignedSgn &= 0x00000003;
4694 L4_MABX_B.SFunction1_o8_bw = ((real_T) CAN_Sgn.UnsignedSgn);
4695
4696 /* ...... "ACCDistanceAlertSignal" (52|2, standard signal, unsigned int, little endian) */
4697 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4698 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4699 CAN_Sgn.UnsignedSgn &= 0x00000003;
4700 L4_MABX_B.SFunction1_o9_d = ((real_T) CAN_Sgn.UnsignedSgn);
4701
4702 /* ...... "ForwardCollisionWarning" (54|2, standard signal, unsigned int, little endian) */
4703 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4704 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4705 CAN_Sgn.UnsignedSgn &= 0x00000003;
4706 L4_MABX_B.SFunction1_o10_h3 = ((real_T) CAN_Sgn.UnsignedSgn);
4707 }
4708 }
4709 } else {
4710 /* set RX status to 0 because no new message has arrived */
4711 L4_MABX_B.SFunction1_o11_fw = 0.0;
4712 }
4713 }
4714 }
4715
4716 /* End of Constant: '<S418>/Constant' */
4717 /* End of Outputs for SubSystem: '<S488>/ACC1_2A_' */
4718
4719 /* DataTypeConversion: '<S488>/Data Type Conversion12' */
4720 L4_MABX_B.ACCDistanceAlertSignal = L4_MABX_B.SFunction1_o9_d;
4721
4722 /* DataTypeConversion: '<S488>/Data Type Conversion13' */
4723 L4_MABX_B.ForwardCollisionWarning = L4_MABX_B.SFunction1_o10_h3;
4724
4725 /* RelationalOperator: '<S473>/Operator' incorporates:
4726 * Constant: '<S416>/Constant'
4727 * Constant: '<S471>/Constant'
4728 */
4729 L4_MABX_B.Operator_fo = (L4_MABX_P.Constant_Value_ex ==
4730 L4_MABX_P.Constant_Value_fi);
4731
4732 /* Outputs for Enabled SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' incorporates:
4733 * EnablePort: '<S472>/Enable'
4734 */
4735 if (L4_MABX_B.Operator_fo) {
4736 /* S-Function (rti_commonblock): '<S472>/S-Function1' */
4737 /* This comment workarounds a code generation problem */
4738
4739 /* dSPACE RTICAN RX Message Block: "TPCM_FF_00" Id:485293824 */
4740 {
4741 UInt32 *CAN_Msg;
4742 static dsfloat time_old = 0.0;
4743
4744 /* Read status and timestamp info (previous message) */
4745 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].timestamp !=
4746 time_old) {
4747 /* ... save timestamp info for the calculation of the RX status
4748 during the consecutive sample hit*/
4749 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].
4750 timestamp;
4751
4752 /* ... set the processed flag to one */
4753 L4_MABX_B.SFunction1_o9_bw = 1.0;
4754 L4_MABX_B.SFunction1_o10_p4 = (real_T)
4755 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].timestamp;
4756 L4_MABX_B.SFunction1_o11_do = (real_T)
4757 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].deltatime;
4758 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].data;
4759
4760 /* Decode CAN message */
4761 {
4762 {
4763 rtican_Signal_t CAN_Sgn;
4764
4765 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
4766 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4767 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4768 L4_MABX_B.SFunction1_o1_h5 = ((real_T) CAN_Sgn.UnsignedSgn);
4769
4770 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
4771 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4772 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4773 L4_MABX_B.SFunction1_o2_oo = ((real_T) CAN_Sgn.UnsignedSgn);
4774
4775 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
4776 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4777 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4778 L4_MABX_B.SFunction1_o3_d0 = ((real_T) CAN_Sgn.UnsignedSgn);
4779
4780 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
4781 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4782 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4783 L4_MABX_B.SFunction1_o4_h2 = ((real_T) CAN_Sgn.UnsignedSgn);
4784
4785 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
4786 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4787 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4788 L4_MABX_B.SFunction1_o5_bn = ((real_T) CAN_Sgn.UnsignedSgn);
4789
4790 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
4791 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4792 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4793 L4_MABX_B.SFunction1_o6_fvt = ((real_T) CAN_Sgn.UnsignedSgn);
4794
4795 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
4796 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4797 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4798 L4_MABX_B.SFunction1_o7_nc = ((real_T) CAN_Sgn.UnsignedSgn);
4799
4800 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
4801 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4802 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4803 L4_MABX_B.SFunction1_o8_fv = ((real_T) CAN_Sgn.UnsignedSgn);
4804 }
4805 }
4806 } else {
4807 /* set RX status to 0 because no new message has arrived */
4808 L4_MABX_B.SFunction1_o9_bw = 0.0;
4809 }
4810 }
4811 }
4812
4813 /* End of Outputs for SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
4814
4815 /* DataTypeConversion: '<S470>/Data Type Conversion' */
4816 PositionFinalLimited = L4_MABX_B.SFunction1_o1_h5;
4817 if (PositionFinalLimited < 256.0) {
4818 if (PositionFinalLimited >= 0.0) {
4819 starting_index = (uint8_T)PositionFinalLimited;
4820 } else {
4821 starting_index = 0U;
4822 }
4823 } else {
4824 starting_index = MAX_uint8_T;
4825 }
4826
4827 L4_MABX_B.DataTypeConversion_mt = starting_index;
4828
4829 /* End of DataTypeConversion: '<S470>/Data Type Conversion' */
4830
4831 /* DataTypeConversion: '<S470>/Data Type Conversion1' */
4832 PositionFinalLimited = L4_MABX_B.SFunction1_o2_oo;
4833 if (PositionFinalLimited < 256.0) {
4834 if (PositionFinalLimited >= 0.0) {
4835 starting_index = (uint8_T)PositionFinalLimited;
4836 } else {
4837 starting_index = 0U;
4838 }
4839 } else {
4840 starting_index = MAX_uint8_T;
4841 }
4842
4843 L4_MABX_B.DataTypeConversion1_d5 = starting_index;
4844
4845 /* End of DataTypeConversion: '<S470>/Data Type Conversion1' */
4846
4847 /* DataTypeConversion: '<S470>/Data Type Conversion2' */
4848 PositionFinalLimited = L4_MABX_B.SFunction1_o3_d0;
4849 if (PositionFinalLimited < 256.0) {
4850 if (PositionFinalLimited >= 0.0) {
4851 starting_index = (uint8_T)PositionFinalLimited;
4852 } else {
4853 starting_index = 0U;
4854 }
4855 } else {
4856 starting_index = MAX_uint8_T;
4857 }
4858
4859 L4_MABX_B.DataTypeConversion2_fq = starting_index;
4860
4861 /* End of DataTypeConversion: '<S470>/Data Type Conversion2' */
4862
4863 /* DataTypeConversion: '<S470>/Data Type Conversion3' */
4864 PositionFinalLimited = L4_MABX_B.SFunction1_o4_h2;
4865 if (PositionFinalLimited < 256.0) {
4866 if (PositionFinalLimited >= 0.0) {
4867 starting_index = (uint8_T)PositionFinalLimited;
4868 } else {
4869 starting_index = 0U;
4870 }
4871 } else {
4872 starting_index = MAX_uint8_T;
4873 }
4874
4875 L4_MABX_B.DataTypeConversion3_b2 = starting_index;
4876
4877 /* End of DataTypeConversion: '<S470>/Data Type Conversion3' */
4878
4879 /* DataTypeConversion: '<S470>/Data Type Conversion4' */
4880 PositionFinalLimited = L4_MABX_B.SFunction1_o5_bn;
4881 if (PositionFinalLimited < 256.0) {
4882 if (PositionFinalLimited >= 0.0) {
4883 starting_index = (uint8_T)PositionFinalLimited;
4884 } else {
4885 starting_index = 0U;
4886 }
4887 } else {
4888 starting_index = MAX_uint8_T;
4889 }
4890
4891 L4_MABX_B.DataTypeConversion4_e = starting_index;
4892
4893 /* End of DataTypeConversion: '<S470>/Data Type Conversion4' */
4894
4895 /* DataTypeConversion: '<S470>/Data Type Conversion5' */
4896 PositionFinalLimited = L4_MABX_B.SFunction1_o6_fvt;
4897 if (PositionFinalLimited < 256.0) {
4898 if (PositionFinalLimited >= 0.0) {
4899 starting_index = (uint8_T)PositionFinalLimited;
4900 } else {
4901 starting_index = 0U;
4902 }
4903 } else {
4904 starting_index = MAX_uint8_T;
4905 }
4906
4907 L4_MABX_B.DataTypeConversion5_ic = starting_index;
4908
4909 /* End of DataTypeConversion: '<S470>/Data Type Conversion5' */
4910
4911 /* DataTypeConversion: '<S470>/Data Type Conversion6' */
4912 PositionFinalLimited = L4_MABX_B.SFunction1_o7_nc;
4913 if (PositionFinalLimited < 256.0) {
4914 if (PositionFinalLimited >= 0.0) {
4915 starting_index = (uint8_T)PositionFinalLimited;
4916 } else {
4917 starting_index = 0U;
4918 }
4919 } else {
4920 starting_index = MAX_uint8_T;
4921 }
4922
4923 L4_MABX_B.DataTypeConversion6_ar = starting_index;
4924
4925 /* End of DataTypeConversion: '<S470>/Data Type Conversion6' */
4926
4927 /* DataTypeConversion: '<S470>/Data Type Conversion7' */
4928 PositionFinalLimited = L4_MABX_B.SFunction1_o8_fv;
4929 if (PositionFinalLimited < 256.0) {
4930 if (PositionFinalLimited >= 0.0) {
4931 starting_index = (uint8_T)PositionFinalLimited;
4932 } else {
4933 starting_index = 0U;
4934 }
4935 } else {
4936 starting_index = MAX_uint8_T;
4937 }
4938
4939 L4_MABX_B.DataTypeConversion7_e = starting_index;
4940
4941 /* End of DataTypeConversion: '<S470>/Data Type Conversion7' */
4942
4943 /* MultiPortSwitch: '<S416>/Multiport_Switch' */
4944 L4_MABX_B.RawData[0] = L4_MABX_B.DataTypeConversion_mt;
4945 L4_MABX_B.RawData[1] = L4_MABX_B.DataTypeConversion1_d5;
4946 L4_MABX_B.RawData[2] = L4_MABX_B.DataTypeConversion2_fq;
4947 L4_MABX_B.RawData[3] = L4_MABX_B.DataTypeConversion3_b2;
4948 L4_MABX_B.RawData[4] = L4_MABX_B.DataTypeConversion4_e;
4949 L4_MABX_B.RawData[5] = L4_MABX_B.DataTypeConversion5_ic;
4950 L4_MABX_B.RawData[6] = L4_MABX_B.DataTypeConversion6_ar;
4951 L4_MABX_B.RawData[7] = L4_MABX_B.DataTypeConversion7_e;
4952
4953 /* DataTypeConversion: '<S464>/Data Type Conversion' */
4954 for (i = 0; i < 8; i++) {
4955 L4_MABX_B.DataTypeConversion_o0[i] = L4_MABX_B.RawData[i];
4956 }
4957
4958 /* End of DataTypeConversion: '<S464>/Data Type Conversion' */
4959
4960 /* RelationalOperator: '<S690>/Operator' incorporates:
4961 * Constant: '<S464>/Constant3'
4962 */
4963 L4_MABX_B.Operator_fct = (L4_MABX_B.DataTypeConversion_o0[0] ==
4964 L4_MABX_P.Constant3_Value_f2);
4965
4966 /* Outputs for Enabled SubSystem: '<S464>/Decode_TPCM_BAM' incorporates:
4967 * EnablePort: '<S682>/Enable'
4968 */
4969 if (L4_MABX_B.Operator_fct) {
4970 /* SignalConversion: '<S693>/Signal Conversion' */
4971 L4_MABX_B.SPN2556_ControlByte_k = L4_MABX_B.DataTypeConversion_o0[0];
4972
4973 /* DataTypeConversion: '<S694>/Data Type Conversion' */
4974 L4_MABX_B.DataTypeConversion_kg = L4_MABX_B.DataTypeConversion_o0[1];
4975
4976 /* DataTypeConversion: '<S694>/Data Type Conversion1' */
4977 L4_MABX_B.DataTypeConversion1_ds = L4_MABX_B.DataTypeConversion_o0[2];
4978
4979 /* ArithShift: '<S694>/Shift Arithmetic2' */
4980 L4_MABX_B.ShiftArithmetic2_o = (uint16_T)(L4_MABX_B.DataTypeConversion1_ds <<
4981 8);
4982
4983 /* S-Function (sfix_bitop): '<S697>/Operator' */
4984 L4_MABX_B.Operator_ip = (uint16_T)(L4_MABX_B.DataTypeConversion_kg |
4985 L4_MABX_B.ShiftArithmetic2_o);
4986
4987 /* DataTypeConversion: '<S697>/DataType' */
4988 L4_MABX_B.DataType_hq = L4_MABX_B.Operator_ip;
4989
4990 /* SignalConversion: '<S695>/Signal Conversion' */
4991 L4_MABX_B.SPN2568_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_o0[3];
4992
4993 /* DataTypeConversion: '<S696>/Data Type Conversion' */
4994 L4_MABX_B.DataTypeConversion_e0 = L4_MABX_B.DataTypeConversion_o0[5];
4995
4996 /* DataTypeConversion: '<S696>/Data Type Conversion1' */
4997 L4_MABX_B.DataTypeConversion1_jy = L4_MABX_B.DataTypeConversion_o0[6];
4998
4999 /* DataTypeConversion: '<S696>/Data Type Conversion2' */
5000 L4_MABX_B.DataTypeConversion2_nt = L4_MABX_B.DataTypeConversion_o0[7];
5001
5002 /* ArithShift: '<S696>/Shift Arithmetic1' */
5003 L4_MABX_B.ShiftArithmetic1_l = L4_MABX_B.DataTypeConversion1_jy << 8;
5004
5005 /* ArithShift: '<S696>/Shift Arithmetic2' */
5006 L4_MABX_B.ShiftArithmetic2_b = L4_MABX_B.DataTypeConversion2_nt << 16;
5007
5008 /* S-Function (sfix_bitop): '<S698>/Operator' */
5009 L4_MABX_B.Operator_o = L4_MABX_B.DataTypeConversion_e0 |
5010 L4_MABX_B.ShiftArithmetic1_l | L4_MABX_B.ShiftArithmetic2_b;
5011
5012 /* DataTypeConversion: '<S698>/DataType' */
5013 L4_MABX_B.DataType_f2 = L4_MABX_B.Operator_o;
5014 }
5015
5016 /* End of Outputs for SubSystem: '<S464>/Decode_TPCM_BAM' */
5017
5018 /* RelationalOperator: '<S482>/Operator' incorporates:
5019 * Constant: '<S417>/Constant'
5020 * Constant: '<S480>/Constant'
5021 */
5022 L4_MABX_B.Operator_bl = (L4_MABX_P.Constant_Value_ma ==
5023 L4_MABX_P.Constant_Value_o0);
5024
5025 /* Outputs for Enabled SubSystem: '<S479>/CAN_TYPE1_RX_M1_C1' incorporates:
5026 * EnablePort: '<S481>/Enable'
5027 */
5028 if (L4_MABX_B.Operator_bl) {
5029 /* S-Function (rti_commonblock): '<S481>/S-Function1' */
5030 /* This comment workarounds a code generation problem */
5031
5032 /* dSPACE RTICAN RX Message Block: "TPDT_FF_00" Id:485228288 */
5033 {
5034 UInt32 *CAN_Msg;
5035 static dsfloat time_old = 0.0;
5036
5037 /* Read status and timestamp info (previous message) */
5038 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].timestamp !=
5039 time_old) {
5040 /* ... save timestamp info for the calculation of the RX status
5041 during the consecutive sample hit*/
5042 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].
5043 timestamp;
5044
5045 /* ... set the processed flag to one */
5046 L4_MABX_B.SFunction1_o9_o = 1.0;
5047 L4_MABX_B.SFunction1_o10_ji = (real_T)
5048 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].timestamp;
5049 L4_MABX_B.SFunction1_o11_jx = (real_T)
5050 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].deltatime;
5051 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].data;
5052
5053 /* Decode CAN message */
5054 {
5055 {
5056 rtican_Signal_t CAN_Sgn;
5057
5058 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
5059 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5060 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5061 L4_MABX_B.SFunction1_o1_pg = ((real_T) CAN_Sgn.UnsignedSgn);
5062
5063 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
5064 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5065 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5066 L4_MABX_B.SFunction1_o2_i4 = ((real_T) CAN_Sgn.UnsignedSgn);
5067
5068 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
5069 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5070 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5071 L4_MABX_B.SFunction1_o3_of = ((real_T) CAN_Sgn.UnsignedSgn);
5072
5073 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
5074 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5075 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5076 L4_MABX_B.SFunction1_o4_oo = ((real_T) CAN_Sgn.UnsignedSgn);
5077
5078 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
5079 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
5080 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5081 L4_MABX_B.SFunction1_o5_h3 = ((real_T) CAN_Sgn.UnsignedSgn);
5082
5083 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
5084 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5085 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5086 L4_MABX_B.SFunction1_o6_lf = ((real_T) CAN_Sgn.UnsignedSgn);
5087
5088 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
5089 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5090 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5091 L4_MABX_B.SFunction1_o7_mf = ((real_T) CAN_Sgn.UnsignedSgn);
5092
5093 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
5094 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5095 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5096 L4_MABX_B.SFunction1_o8_p = ((real_T) CAN_Sgn.UnsignedSgn);
5097 }
5098 }
5099 } else {
5100 /* set RX status to 0 because no new message has arrived */
5101 L4_MABX_B.SFunction1_o9_o = 0.0;
5102 }
5103 }
5104 }
5105
5106 /* End of Outputs for SubSystem: '<S479>/CAN_TYPE1_RX_M1_C1' */
5107
5108 /* DataTypeConversion: '<S479>/Data Type Conversion' */
5109 PositionFinalLimited = L4_MABX_B.SFunction1_o1_pg;
5110 if (PositionFinalLimited < 256.0) {
5111 if (PositionFinalLimited >= 0.0) {
5112 starting_index = (uint8_T)PositionFinalLimited;
5113 } else {
5114 starting_index = 0U;
5115 }
5116 } else {
5117 starting_index = MAX_uint8_T;
5118 }
5119
5120 L4_MABX_B.DataTypeConversion_ge = starting_index;
5121
5122 /* End of DataTypeConversion: '<S479>/Data Type Conversion' */
5123
5124 /* DataTypeConversion: '<S479>/Data Type Conversion1' */
5125 PositionFinalLimited = L4_MABX_B.SFunction1_o2_i4;
5126 if (PositionFinalLimited < 256.0) {
5127 if (PositionFinalLimited >= 0.0) {
5128 starting_index = (uint8_T)PositionFinalLimited;
5129 } else {
5130 starting_index = 0U;
5131 }
5132 } else {
5133 starting_index = MAX_uint8_T;
5134 }
5135
5136 L4_MABX_B.DataTypeConversion1_hs1 = starting_index;
5137
5138 /* End of DataTypeConversion: '<S479>/Data Type Conversion1' */
5139
5140 /* DataTypeConversion: '<S479>/Data Type Conversion2' */
5141 PositionFinalLimited = L4_MABX_B.SFunction1_o3_of;
5142 if (PositionFinalLimited < 256.0) {
5143 if (PositionFinalLimited >= 0.0) {
5144 starting_index = (uint8_T)PositionFinalLimited;
5145 } else {
5146 starting_index = 0U;
5147 }
5148 } else {
5149 starting_index = MAX_uint8_T;
5150 }
5151
5152 L4_MABX_B.DataTypeConversion2_pm = starting_index;
5153
5154 /* End of DataTypeConversion: '<S479>/Data Type Conversion2' */
5155
5156 /* DataTypeConversion: '<S479>/Data Type Conversion3' */
5157 PositionFinalLimited = L4_MABX_B.SFunction1_o4_oo;
5158 if (PositionFinalLimited < 256.0) {
5159 if (PositionFinalLimited >= 0.0) {
5160 starting_index = (uint8_T)PositionFinalLimited;
5161 } else {
5162 starting_index = 0U;
5163 }
5164 } else {
5165 starting_index = MAX_uint8_T;
5166 }
5167
5168 L4_MABX_B.DataTypeConversion3_hl = starting_index;
5169
5170 /* End of DataTypeConversion: '<S479>/Data Type Conversion3' */
5171
5172 /* DataTypeConversion: '<S479>/Data Type Conversion4' */
5173 PositionFinalLimited = L4_MABX_B.SFunction1_o5_h3;
5174 if (PositionFinalLimited < 256.0) {
5175 if (PositionFinalLimited >= 0.0) {
5176 starting_index = (uint8_T)PositionFinalLimited;
5177 } else {
5178 starting_index = 0U;
5179 }
5180 } else {
5181 starting_index = MAX_uint8_T;
5182 }
5183
5184 L4_MABX_B.DataTypeConversion4_lb = starting_index;
5185
5186 /* End of DataTypeConversion: '<S479>/Data Type Conversion4' */
5187
5188 /* DataTypeConversion: '<S479>/Data Type Conversion5' */
5189 PositionFinalLimited = L4_MABX_B.SFunction1_o6_lf;
5190 if (PositionFinalLimited < 256.0) {
5191 if (PositionFinalLimited >= 0.0) {
5192 starting_index = (uint8_T)PositionFinalLimited;
5193 } else {
5194 starting_index = 0U;
5195 }
5196 } else {
5197 starting_index = MAX_uint8_T;
5198 }
5199
5200 L4_MABX_B.DataTypeConversion5_e = starting_index;
5201
5202 /* End of DataTypeConversion: '<S479>/Data Type Conversion5' */
5203
5204 /* DataTypeConversion: '<S479>/Data Type Conversion6' */
5205 PositionFinalLimited = L4_MABX_B.SFunction1_o7_mf;
5206 if (PositionFinalLimited < 256.0) {
5207 if (PositionFinalLimited >= 0.0) {
5208 starting_index = (uint8_T)PositionFinalLimited;
5209 } else {
5210 starting_index = 0U;
5211 }
5212 } else {
5213 starting_index = MAX_uint8_T;
5214 }
5215
5216 L4_MABX_B.DataTypeConversion6_m2 = starting_index;
5217
5218 /* End of DataTypeConversion: '<S479>/Data Type Conversion6' */
5219
5220 /* DataTypeConversion: '<S479>/Data Type Conversion7' */
5221 PositionFinalLimited = L4_MABX_B.SFunction1_o8_p;
5222 if (PositionFinalLimited < 256.0) {
5223 if (PositionFinalLimited >= 0.0) {
5224 starting_index = (uint8_T)PositionFinalLimited;
5225 } else {
5226 starting_index = 0U;
5227 }
5228 } else {
5229 starting_index = MAX_uint8_T;
5230 }
5231
5232 L4_MABX_B.DataTypeConversion7_fh = starting_index;
5233
5234 /* End of DataTypeConversion: '<S479>/Data Type Conversion7' */
5235
5236 /* MultiPortSwitch: '<S417>/Multiport_Switch' */
5237 L4_MABX_B.RawData_m[0] = L4_MABX_B.DataTypeConversion_ge;
5238 L4_MABX_B.RawData_m[1] = L4_MABX_B.DataTypeConversion1_hs1;
5239 L4_MABX_B.RawData_m[2] = L4_MABX_B.DataTypeConversion2_pm;
5240 L4_MABX_B.RawData_m[3] = L4_MABX_B.DataTypeConversion3_hl;
5241 L4_MABX_B.RawData_m[4] = L4_MABX_B.DataTypeConversion4_lb;
5242 L4_MABX_B.RawData_m[5] = L4_MABX_B.DataTypeConversion5_e;
5243 L4_MABX_B.RawData_m[6] = L4_MABX_B.DataTypeConversion6_m2;
5244 L4_MABX_B.RawData_m[7] = L4_MABX_B.DataTypeConversion7_fh;
5245
5246 /* DataTypeConversion: '<S465>/Data Type Conversion' */
5247 for (i = 0; i < 8; i++) {
5248 L4_MABX_B.DataTypeConversion_dm[i] = L4_MABX_B.RawData_m[i];
5249 }
5250
5251 /* End of DataTypeConversion: '<S465>/Data Type Conversion' */
5252
5253 /* S-Function (rti_commonblock): '<S833>/S-Function1' */
5254
5255 /* This comment workarounds a code generation problem */
5256
5257 /* End of Outputs for S-Function (rti_commonblock): '<S833>/S-Function1' */
5258
5259 /* RateTransition: '<S412>/Rate Transition' */
5260 switch (L4_MABX_DW.RateTransition_write_buf) {
5261 case 0:
5262 L4_MABX_DW.RateTransition_read_buf = 1;
5263 break;
5264
5265 case 1:
5266 L4_MABX_DW.RateTransition_read_buf = 0;
5267 break;
5268
5269 default:
5270 L4_MABX_DW.RateTransition_read_buf = L4_MABX_DW.RateTransition_last_buf_wr;
5271 break;
5272 }
5273
5274 if (L4_MABX_DW.RateTransition_read_buf != 0) {
5275 GLB_Absolute_Timestamp = L4_MABX_DW.RateTransition_Buffer1;
5276 } else {
5277 GLB_Absolute_Timestamp = L4_MABX_DW.RateTransition_Buffer0;
5278 }
5279
5280 L4_MABX_DW.RateTransition_read_buf = -1;
5281
5282 /* End of RateTransition: '<S412>/Rate Transition' */
5283
5284 /* DataTypeConversion: '<S479>/Data Type Conversion8' */
5285 L4_MABX_B.RX_status = (L4_MABX_B.SFunction1_o9_o != 0.0);
5286
5287 /* MultiPortSwitch: '<S417>/Multiport_Switch' */
5288 L4_MABX_B.RX_status_h = L4_MABX_B.RX_status;
5289
5290 /* RelationalOperator: '<S517>/Operator' incorporates:
5291 * Constant: '<S431>/Constant2'
5292 */
5293 L4_MABX_B.Operator_kc = (L4_MABX_B.DataType_f2 == L4_MABX_P.Constant2_Value_g1);
5294
5295 /* Logic: '<S431>/Logical Operator' */
5296 L4_MABX_B.LogicalOperator_k = (L4_MABX_B.RX_status_h && L4_MABX_B.Operator_kc);
5297
5298 /* Outputs for Enabled SubSystem: '<S431>/CAN_RX_EC1_00' incorporates:
5299 * EnablePort: '<S515>/Enable'
5300 */
5301 if (L4_MABX_B.LogicalOperator_k) {
5302 /* UnitDelay: '<S515>/Unit Delay' */
5303 for (i = 0; i < 39; i++) {
5304 L4_MABX_B.UnitDelay_i[i] = L4_MABX_DW.UnitDelay_DSTATE_ek[i];
5305 }
5306
5307 /* End of UnitDelay: '<S515>/Unit Delay' */
5308
5309 /* MATLAB Function: '<S515>/serialize_tpdt' */
5310 /* MATLAB Function 'INPUTS_PIC_KW/CAN_PIC_KW/CAN_RX_EC1_00/CAN_RX_EC1_00/serialize_tpdt': '<S519>:1' */
5311 /* '<S519>:1:9' */
5312 if (L4_MABX_B.DataTypeConversion_dm[0] > 1) {
5313 /* '<S519>:1:6' */
5314 /* '<S519>:1:7' */
5315 for (i = 0; i < 39; i++) {
5316 L4_MABX_B.Data_l[i] = L4_MABX_B.UnitDelay_i[i];
5317 }
5318 } else {
5319 /* '<S519>:1:9' */
5320 for (i = 0; i < 39; i++) {
5321 L4_MABX_B.Data_l[i] = MAX_uint8_T;
5322 }
5323 }
5324
5325 /* '<S519>:1:11' */
5326 i = (int32_T)(7U * L4_MABX_B.DataTypeConversion_dm[0]);
5327 if ((uint32_T)i > 255U) {
5328 i = 255;
5329 }
5330
5331 tmp = i - 6U;
5332 if (tmp > (uint32_T)i) {
5333 tmp = 0U;
5334 }
5335
5336 i = (int32_T)tmp;
5337 starting_index = (uint8_T)i;
5338
5339 /* '<S519>:1:12' */
5340 L4_MABX_B.Data_l[starting_index - 1] = L4_MABX_B.DataTypeConversion_dm[1];
5341 L4_MABX_B.Data_l[starting_index] = L4_MABX_B.DataTypeConversion_dm[2];
5342 L4_MABX_B.Data_l[starting_index + 1] = L4_MABX_B.DataTypeConversion_dm[3];
5343 L4_MABX_B.Data_l[starting_index + 2] = L4_MABX_B.DataTypeConversion_dm[4];
5344 L4_MABX_B.Data_l[starting_index + 3] = L4_MABX_B.DataTypeConversion_dm[5];
5345 L4_MABX_B.Data_l[starting_index + 4] = L4_MABX_B.DataTypeConversion_dm[6];
5346 L4_MABX_B.Data_l[starting_index + 5] = L4_MABX_B.DataTypeConversion_dm[7];
5347
5348 /* '<S519>:1:13' */
5349 L4_MABX_B.RX_status_el = (L4_MABX_B.DataTypeConversion_dm[0] ==
5350 L4_MABX_B.SPN2568_TotalNumberOfPackets);
5351
5352 /* End of MATLAB Function: '<S515>/serialize_tpdt' */
5353
5354 /* Outputs for Enabled SubSystem: '<S515>/Decode' incorporates:
5355 * EnablePort: '<S518>/Enable'
5356 */
5357 if (L4_MABX_B.RX_status_el) {
5358 /* Inport: '<S518>/Inport' */
5359 for (i = 0; i < 39; i++) {
5360 L4_MABX_B.Inport_p[i] = L4_MABX_B.Data_l[i];
5361 }
5362
5363 /* End of Inport: '<S518>/Inport' */
5364
5365 /* Inport: '<S518>/timeStamp' */
5366 L4_MABX_B.timeStamp_f = GLB_Absolute_Timestamp;
5367
5368 /* UnitDelay: '<S518>/Unit_Delay' */
5369 L4_MABX_B.Unit_Delay_e = L4_MABX_DW.Unit_Delay_DSTATE_d;
5370
5371 /* Sum: '<S518>/Subtract' */
5372 L4_MABX_B.Subtract_ls = (real32_T)(L4_MABX_B.timeStamp_f -
5373 L4_MABX_B.Unit_Delay_e);
5374 }
5375
5376 /* End of Outputs for SubSystem: '<S515>/Decode' */
5377 }
5378
5379 /* End of Outputs for SubSystem: '<S431>/CAN_RX_EC1_00' */
5380
5381 /* DataTypeConversion: '<S516>/Data Type Conversion' */
5382 for (i = 0; i < 39; i++) {
5383 L4_MABX_B.DataTypeConversion_at[i] = L4_MABX_B.Inport_p[i];
5384 }
5385
5386 /* End of DataTypeConversion: '<S516>/Data Type Conversion' */
5387
5388 /* DataTypeConversion: '<S527>/Data Type Conversion' */
5389 L4_MABX_B.DataTypeConversion_jz = L4_MABX_B.DataTypeConversion_at[19];
5390
5391 /* DataTypeConversion: '<S527>/Data Type Conversion1' */
5392 L4_MABX_B.DataTypeConversion1_b3 = L4_MABX_B.DataTypeConversion_at[20];
5393
5394 /* ArithShift: '<S527>/Shift Arithmetic' */
5395 L4_MABX_B.ShiftArithmetic = (uint16_T)(L4_MABX_B.DataTypeConversion1_b3 << 8);
5396
5397 /* S-Function (sfix_bitop): '<S552>/Operator' */
5398 L4_MABX_B.Operator_ku = (uint16_T)(L4_MABX_B.DataTypeConversion_jz |
5399 L4_MABX_B.ShiftArithmetic);
5400
5401 /* DataTypeConversion: '<S552>/DataType' */
5402 L4_MABX_B.DataType_kz = L4_MABX_B.Operator_ku;
5403
5404 /* DataTypeConversion: '<S527>/Data Type Conversion2' */
5405 L4_MABX_B.SPN544_EngineReferenceTorque = L4_MABX_B.DataType_kz;
5406
5407 /* Outputs for Enabled SubSystem: '<S637>/VDC1_0B_' incorporates:
5408 * EnablePort: '<S638>/Enable'
5409 */
5410 /* Constant: '<S451>/Constant' */
5411 if (L4_MABX_P.Constant_Value_b1) {
5412 /* S-Function (rti_commonblock): '<S638>/S-Function1' */
5413 /* This comment workarounds a code generation problem */
5414
5415 /* dSPACE RTICAN RX Message Block: "VDC1_0B" Id:419319563 */
5416 {
5417 UInt32 *CAN_Msg;
5418 static dsfloat time_old = 0.0;
5419
5420 /* Read status and timestamp info (previous message) */
5421 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].timestamp !=
5422 time_old) {
5423 /* ... save timestamp info for the calculation of the RX status
5424 during the consecutive sample hit*/
5425 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].
5426 timestamp;
5427
5428 /* ... set the processed flag to one */
5429 L4_MABX_B.SFunction1_o8_i = 1.0;
5430 L4_MABX_B.SFunction1_o9_i = (real_T)
5431 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].timestamp;
5432 L4_MABX_B.SFunction1_o10 = (real_T)
5433 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].deltatime;
5434 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].data;
5435
5436 /* Decode CAN message */
5437 {
5438 {
5439 rtican_Signal_t CAN_Sgn;
5440
5441 /* ...... "VDCInformationSignal" (0|2, standard signal, unsigned int, little endian) */
5442 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5443 CAN_Sgn.UnsignedSgn &= 0x00000003;
5444 L4_MABX_B.SFunction1_o1_gt = ((real_T) CAN_Sgn.UnsignedSgn);
5445
5446 /* ...... "VDCFullyOperational" (2|2, standard signal, unsigned int, little endian) */
5447 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5448 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5449 CAN_Sgn.UnsignedSgn &= 0x00000003;
5450 L4_MABX_B.SFunction1_o2_al = ((real_T) CAN_Sgn.UnsignedSgn);
5451
5452 /* ...... "VDCBrakeLightRq" (4|2, standard signal, unsigned int, little endian) */
5453 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5454 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5455 CAN_Sgn.UnsignedSgn &= 0x00000003;
5456 L4_MABX_B.SFunction1_o3_ir = ((real_T) CAN_Sgn.UnsignedSgn);
5457
5458 /* ...... "ROPEngCtrlActive" (8|2, standard signal, unsigned int, little endian) */
5459 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5460 CAN_Sgn.UnsignedSgn &= 0x00000003;
5461 L4_MABX_B.SFunction1_o4_lb = ((real_T) CAN_Sgn.UnsignedSgn);
5462
5463 /* ...... "ROPBrakeCtrlActive" (10|2, standard signal, unsigned int, little endian) */
5464 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5465 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5466 CAN_Sgn.UnsignedSgn &= 0x00000003;
5467 L4_MABX_B.SFunction1_o5_i = ((real_T) CAN_Sgn.UnsignedSgn);
5468
5469 /* ...... "YCEngCtrlActive" (12|2, standard signal, unsigned int, little endian) */
5470 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5471 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5472 CAN_Sgn.UnsignedSgn &= 0x00000003;
5473 L4_MABX_B.SFunction1_o6_f = ((real_T) CAN_Sgn.UnsignedSgn);
5474
5475 /* ...... "YCBrakeCtrlActive" (14|2, standard signal, unsigned int, little endian) */
5476 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5477 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5478 CAN_Sgn.UnsignedSgn &= 0x00000003;
5479 L4_MABX_B.SFunction1_o7_h = ((real_T) CAN_Sgn.UnsignedSgn);
5480 }
5481 }
5482 } else {
5483 /* set RX status to 0 because no new message has arrived */
5484 L4_MABX_B.SFunction1_o8_i = 0.0;
5485 }
5486 }
5487 }
5488
5489 /* End of Constant: '<S451>/Constant' */
5490 /* End of Outputs for SubSystem: '<S637>/VDC1_0B_' */
5491
5492 /* Outputs for Enabled SubSystem: '<S639>/VDC2_0B1' incorporates:
5493 * EnablePort: '<S640>/Enable'
5494 */
5495 /* Constant: '<S452>/Constant' */
5496 if (L4_MABX_P.Constant_Value_ip) {
5497 /* S-Function (rti_commonblock): '<S640>/S-Function1' */
5498 /* This comment workarounds a code generation problem */
5499
5500 /* dSPACE RTICAN RX Message Block: "VDC2_0B" Id:418384139 */
5501 {
5502 UInt32 *CAN_Msg;
5503 static dsfloat time_old = 0.0;
5504
5505 /* Read status and timestamp info (previous message) */
5506 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].timestamp !=
5507 time_old) {
5508 /* ... save timestamp info for the calculation of the RX status
5509 during the consecutive sample hit*/
5510 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].
5511 timestamp;
5512
5513 /* ... set the processed flag to one */
5514 L4_MABX_B.SFunction1_o7_i = 1.0;
5515 L4_MABX_B.SFunction1_o8_l = (real_T)
5516 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].timestamp;
5517 L4_MABX_B.SFunction1_o9 = (real_T)
5518 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].deltatime;
5519 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].data;
5520
5521 /* Decode CAN message */
5522 {
5523 {
5524 rtican_Signal_t CAN_Sgn;
5525
5526 /* ...... "SteerWheelAngle" (0|16, standard signal, unsigned int, little endian) */
5527 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5528 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5529 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5530 SteerWheelAngle = -31.374 + ( 0.0009765625 * ( ((real_T)
5531 CAN_Sgn.UnsignedSgn) ) );
5532
5533 /* ...... "SteerWheelTurnCounter" (16|6, standard signal, unsigned int, little endian) */
5534 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5535 CAN_Sgn.UnsignedSgn &= 0x0000003F;
5536 L4_MABX_B.SFunction1_o2_m3 = -32 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
5537
5538 /* ...... "SteerWheelAngleSensorType" (22|2, standard signal, unsigned int, little endian) */
5539 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5540 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5541 CAN_Sgn.UnsignedSgn &= 0x00000003;
5542 L4_MABX_B.SFunction1_o3_f1 = ((real_T) CAN_Sgn.UnsignedSgn);
5543
5544 /* ...... "YawRate" (24|16, standard signal, unsigned int, little endian) */
5545 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5546 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5547 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5548 YawRate = -3.92 + ( 0.0001220703125 * ( ((real_T)
5549 CAN_Sgn.UnsignedSgn) ) );
5550
5551 /* ...... "LateralAcceleration" (40|16, standard signal, unsigned int, little endian) */
5552 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5553 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
5554 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5555 L4_MABX_B.SFunction1_o5_g = -15.687 + ( 0.00048828125 * ( ((real_T)
5556 CAN_Sgn.UnsignedSgn) ) );
5557
5558 /* ...... "LongitudinalAcceleration" (56|8, standard signal, unsigned int, little endian) */
5559 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5560 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5561 SPN1810_LongitudinalAcceleration = -12.5 + ( 0.1 * ( ((real_T)
5562 CAN_Sgn.UnsignedSgn) ) );
5563 }
5564 }
5565 } else {
5566 /* set RX status to 0 because no new message has arrived */
5567 L4_MABX_B.SFunction1_o7_i = 0.0;
5568 }
5569 }
5570 }
5571
5572 /* End of Constant: '<S452>/Constant' */
5573 /* End of Outputs for SubSystem: '<S639>/VDC2_0B1' */
5574
5575 /* UnitDelay: '<S644>/Unit_Delay3' */
5576 L4_MABX_B.Unit_Delay3 = L4_MABX_DW.Unit_Delay3_DSTATE;
5577
5578 /* RelationalOperator: '<S645>/Operator' incorporates:
5579 * Constant: '<S454>/Constant2'
5580 */
5581 L4_MABX_B.Operator_l0 = (L4_MABX_B.DataType_f2 == L4_MABX_P.Constant2_Value_l);
5582
5583 /* Logic: '<S454>/Logical Operator' */
5584 L4_MABX_B.LogicalOperator_o = (L4_MABX_B.RX_status_h && L4_MABX_B.Operator_l0);
5585
5586 /* Outputs for Enabled SubSystem: '<S454>/CAN_RX_VI_00' incorporates:
5587 * EnablePort: '<S643>/Enable'
5588 */
5589 if (L4_MABX_B.LogicalOperator_o) {
5590 /* UnitDelay: '<S643>/Unit Delay' */
5591 for (i = 0; i < 17; i++) {
5592 L4_MABX_B.UnitDelay_j0[i] = L4_MABX_DW.UnitDelay_DSTATE_pd[i];
5593 }
5594
5595 /* End of UnitDelay: '<S643>/Unit Delay' */
5596
5597 /* MATLAB Function: '<S643>/serialize_tpdt' */
5598 /* MATLAB Function 'INPUTS_PIC_KW/CAN_PIC_KW/CAN_RX_VI_00/CAN_RX_VI_00/serialize_tpdt': '<S647>:1' */
5599 /* '<S647>:1:9' */
5600 if (L4_MABX_B.DataTypeConversion_dm[0] > 1) {
5601 /* '<S647>:1:6' */
5602 /* '<S647>:1:7' */
5603 for (i = 0; i < 17; i++) {
5604 L4_MABX_B.Data[i] = L4_MABX_B.UnitDelay_j0[i];
5605 }
5606 } else {
5607 /* '<S647>:1:9' */
5608 for (i = 0; i < 17; i++) {
5609 L4_MABX_B.Data[i] = MAX_uint8_T;
5610 }
5611 }
5612
5613 /* '<S647>:1:11' */
5614 i = (int32_T)(7U * L4_MABX_B.DataTypeConversion_dm[0]);
5615 if ((uint32_T)i > 255U) {
5616 i = 255;
5617 }
5618
5619 tmp = i - 6U;
5620 if (tmp > (uint32_T)i) {
5621 tmp = 0U;
5622 }
5623
5624 i = (int32_T)tmp;
5625 starting_index = (uint8_T)i;
5626
5627 /* '<S647>:1:12' */
5628 L4_MABX_B.Data[starting_index - 1] = L4_MABX_B.DataTypeConversion_dm[1];
5629 L4_MABX_B.Data[starting_index] = L4_MABX_B.DataTypeConversion_dm[2];
5630 L4_MABX_B.Data[starting_index + 1] = L4_MABX_B.DataTypeConversion_dm[3];
5631 L4_MABX_B.Data[starting_index + 2] = L4_MABX_B.DataTypeConversion_dm[4];
5632 L4_MABX_B.Data[starting_index + 3] = L4_MABX_B.DataTypeConversion_dm[5];
5633 L4_MABX_B.Data[starting_index + 4] = L4_MABX_B.DataTypeConversion_dm[6];
5634 L4_MABX_B.Data[starting_index + 5] = L4_MABX_B.DataTypeConversion_dm[7];
5635
5636 /* '<S647>:1:13' */
5637 L4_MABX_B.RX_status_a1 = (L4_MABX_B.DataTypeConversion_dm[0] ==
5638 L4_MABX_B.SPN2568_TotalNumberOfPackets);
5639
5640 /* End of MATLAB Function: '<S643>/serialize_tpdt' */
5641
5642 /* Outputs for Enabled SubSystem: '<S643>/Decode' incorporates:
5643 * EnablePort: '<S646>/Enable'
5644 */
5645 if (L4_MABX_B.RX_status_a1) {
5646 /* Inport: '<S646>/Inport' */
5647 for (i = 0; i < 17; i++) {
5648 L4_MABX_B.Inport[i] = L4_MABX_B.Data[i];
5649 }
5650
5651 /* End of Inport: '<S646>/Inport' */
5652
5653 /* Inport: '<S646>/timeStamp' */
5654 L4_MABX_B.timeStamp = GLB_Absolute_Timestamp;
5655
5656 /* UnitDelay: '<S646>/Unit_Delay' */
5657 L4_MABX_B.Unit_Delay_o = L4_MABX_DW.Unit_Delay_DSTATE_o;
5658
5659 /* Sum: '<S646>/Subtract' */
5660 L4_MABX_B.Subtract_p = (real32_T)(L4_MABX_B.timeStamp -
5661 L4_MABX_B.Unit_Delay_o);
5662 }
5663
5664 /* End of Outputs for SubSystem: '<S643>/Decode' */
5665 }
5666
5667 /* End of Outputs for SubSystem: '<S454>/CAN_RX_VI_00' */
5668
5669 /* DataTypeConversion: '<S644>/Data Type Conversion' */
5670 L4_MABX_B.DataTypeConversion_ae = L4_MABX_B.Inport[0];
5671
5672 /* DataTypeConversion: '<S644>/Data Type Conversion1' */
5673 L4_MABX_B.DataTypeConversion1_l1 = L4_MABX_B.Inport[1];
5674
5675 /* DataTypeConversion: '<S644>/Data Type Conversion2' */
5676 L4_MABX_B.DataTypeConversion2_eci = L4_MABX_B.Inport[2];
5677
5678 /* DataTypeConversion: '<S644>/Data Type Conversion3' */
5679 L4_MABX_B.DataTypeConversion3_is = L4_MABX_B.Inport[3];
5680
5681 /* DataTypeConversion: '<S644>/Data Type Conversion4' */
5682 L4_MABX_B.DataTypeConversion4_m = L4_MABX_B.Inport[4];
5683
5684 /* DataTypeConversion: '<S644>/Data Type Conversion5' */
5685 L4_MABX_B.DataTypeConversion5_c = L4_MABX_B.Inport[5];
5686
5687 /* DataTypeConversion: '<S644>/Data Type Conversion6' */
5688 L4_MABX_B.DataTypeConversion6_h = L4_MABX_B.Inport[6];
5689
5690 /* DataTypeConversion: '<S644>/Data Type Conversion7' */
5691 L4_MABX_B.DataTypeConversion7_dl = L4_MABX_B.Inport[7];
5692
5693 /* DataTypeConversion: '<S644>/Data Type Conversion8' */
5694 L4_MABX_B.DataTypeConversion8_o = L4_MABX_B.Inport[8];
5695
5696 /* DataTypeConversion: '<S644>/Data Type Conversion9' */
5697 L4_MABX_B.DataTypeConversion9_kt = L4_MABX_B.Inport[9];
5698
5699 /* DataTypeConversion: '<S644>/Data Type Conversion10' */
5700 L4_MABX_B.DataTypeConversion10_ap = L4_MABX_B.Inport[10];
5701
5702 /* DataTypeConversion: '<S644>/Data Type Conversion11' */
5703 L4_MABX_B.DataTypeConversion11_o = L4_MABX_B.Inport[11];
5704
5705 /* DataTypeConversion: '<S644>/Data Type Conversion12' */
5706 L4_MABX_B.DataTypeConversion12 = L4_MABX_B.Inport[12];
5707
5708 /* DataTypeConversion: '<S644>/Data Type Conversion14' */
5709 L4_MABX_B.DataTypeConversion14_n = L4_MABX_B.Inport[13];
5710
5711 /* DataTypeConversion: '<S644>/Data Type Conversion13' */
5712 L4_MABX_B.DataTypeConversion13_g = L4_MABX_B.Inport[14];
5713
5714 /* DataTypeConversion: '<S644>/Data Type Conversion15' */
5715 L4_MABX_B.DataTypeConversion15_b = L4_MABX_B.Inport[15];
5716
5717 /* DataTypeConversion: '<S644>/Data Type Conversion16' */
5718 L4_MABX_B.DataTypeConversion16_a = L4_MABX_B.Inport[16];
5719
5720 /* RelationalOperator: '<S644>/Relational Operator1' incorporates:
5721 * Constant: '<S644>/TRUCK_1571_VIN_CPV'
5722 */
5723 L4_MABX_B.RelationalOperator1_ns[0] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[0]
5724 != L4_MABX_B.DataTypeConversion_ae);
5725 L4_MABX_B.RelationalOperator1_ns[1] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[1]
5726 != L4_MABX_B.DataTypeConversion1_l1);
5727 L4_MABX_B.RelationalOperator1_ns[2] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[2]
5728 != L4_MABX_B.DataTypeConversion2_eci);
5729 L4_MABX_B.RelationalOperator1_ns[3] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[3]
5730 != L4_MABX_B.DataTypeConversion3_is);
5731 L4_MABX_B.RelationalOperator1_ns[4] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[4]
5732 != L4_MABX_B.DataTypeConversion4_m);
5733 L4_MABX_B.RelationalOperator1_ns[5] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[5]
5734 != L4_MABX_B.DataTypeConversion5_c);
5735 L4_MABX_B.RelationalOperator1_ns[6] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[6]
5736 != L4_MABX_B.DataTypeConversion6_h);
5737 L4_MABX_B.RelationalOperator1_ns[7] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[7]
5738 != L4_MABX_B.DataTypeConversion7_dl);
5739 L4_MABX_B.RelationalOperator1_ns[8] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[8]
5740 != L4_MABX_B.DataTypeConversion8_o);
5741 L4_MABX_B.RelationalOperator1_ns[9] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[9]
5742 != L4_MABX_B.DataTypeConversion9_kt);
5743 L4_MABX_B.RelationalOperator1_ns[10] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[10]
5744 != L4_MABX_B.DataTypeConversion10_ap);
5745 L4_MABX_B.RelationalOperator1_ns[11] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[11]
5746 != L4_MABX_B.DataTypeConversion11_o);
5747 L4_MABX_B.RelationalOperator1_ns[12] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[12]
5748 != L4_MABX_B.DataTypeConversion12);
5749 L4_MABX_B.RelationalOperator1_ns[13] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[13]
5750 != L4_MABX_B.DataTypeConversion14_n);
5751 L4_MABX_B.RelationalOperator1_ns[14] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[14]
5752 != L4_MABX_B.DataTypeConversion13_g);
5753 L4_MABX_B.RelationalOperator1_ns[15] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[15]
5754 != L4_MABX_B.DataTypeConversion15_b);
5755 L4_MABX_B.RelationalOperator1_ns[16] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[16]
5756 != L4_MABX_B.DataTypeConversion16_a);
5757
5758 /* Sum: '<S644>/Add' */
5759 tmp = 0U;
5760 for (i = 0; i < 17; i++) {
5761 tmp += L4_MABX_B.RelationalOperator1_ns[i];
5762 }
5763
5764 L4_MABX_B.Add_ni = (uint8_T)tmp;
5765
5766 /* End of Sum: '<S644>/Add' */
5767
5768 /* RelationalOperator: '<S648>/Compare' incorporates:
5769 * Constant: '<S648>/Constant'
5770 */
5771 L4_MABX_B.Compare_il = (L4_MABX_B.Add_ni == L4_MABX_P.Constant_Value_jp);
5772
5773 /* Logic: '<S644>/Logical Operator' */
5774 L4_MABX_B.LogicalOperator_l = (L4_MABX_B.Unit_Delay3 && L4_MABX_B.Compare_il);
5775
5776 /* UnitDelay: '<S644>/Unit_Delay' */
5777 L4_MABX_B.Unit_Delay_ku = L4_MABX_DW.Unit_Delay_DSTATE_k;
5778
5779 /* Logic: '<S650>/Logical Operator3' */
5780 L4_MABX_B.LogicalOperator3_h = !L4_MABX_B.Unit_Delay_ku;
5781
5782 /* UnitDelay: '<S650>/Unit_Delay' */
5783 L4_MABX_B.Unit_Delay_m2 = L4_MABX_DW.Unit_Delay_DSTATE_of;
5784
5785 /* Logic: '<S650>/Logical Operator' */
5786 L4_MABX_B.LogicalOperator_b = (L4_MABX_B.LogicalOperator3_h &&
5787 L4_MABX_B.Unit_Delay_m2);
5788
5789 /* Logic: '<S650>/Logical Operator1' */
5790 L4_MABX_B.LogicalOperator1_h = (L4_MABX_B.LogicalOperator_l ||
5791 L4_MABX_B.LogicalOperator_b);
5792
5793 /* Outputs for Enabled SubSystem: '<S625>/SSI2_031' incorporates:
5794 * EnablePort: '<S626>/Enable'
5795 */
5796 /* Constant: '<S445>/Constant' */
5797 if (L4_MABX_P.Constant_Value_na > 0.0) {
5798 /* S-Function (rti_commonblock): '<S626>/S-Function1' */
5799 /* This comment workarounds a code generation problem */
5800
5801 /* dSPACE RTICAN RX Message Block: "SSI2_03" Id:217065731 */
5802 {
5803 UInt32 *CAN_Msg;
5804 static dsfloat time_old = 0.0;
5805
5806 /* Read status and timestamp info (previous message) */
5807 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].timestamp !=
5808 time_old) {
5809 /* ... save timestamp info for the calculation of the RX status
5810 during the consecutive sample hit*/
5811 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].
5812 timestamp;
5813
5814 /* ... set the processed flag to one */
5815 L4_MABX_B.SFunction1_o8_nr = 1.0;
5816 L4_MABX_B.SFunction1_o9_k = (real_T)
5817 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].timestamp;
5818 L4_MABX_B.SFunction1_o10_k = (real_T)
5819 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].deltatime;
5820 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].data;
5821
5822 /* Decode CAN message */
5823 {
5824 {
5825 rtican_Signal_t CAN_Sgn;
5826
5827 /* ...... "PitchAngleExRange" (0|24, standard signal, unsigned int, little endian) */
5828 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5829 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5830 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
5831 CAN_Sgn.UnsignedSgn &= 0x00FFFFFF;
5832 L4_MABX_B.SFunction1_o1_g5 = -250 + ( 3.0517578125E-5 * ( ((real_T)
5833 CAN_Sgn.UnsignedSgn) ) );
5834
5835 /* ...... "RollAngleExRange" (24|24, standard signal, unsigned int, little endian) */
5836 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5837 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5838 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[5];
5839 CAN_Sgn.UnsignedSgn &= 0x00FFFFFF;
5840 L4_MABX_B.SFunction1_o2_im = -250 + ( 3.0517578125E-5 * ( ((real_T)
5841 CAN_Sgn.UnsignedSgn) ) );
5842
5843 /* ...... "PitchAngleExRangeCompensation" (48|2, standard signal, unsigned int, little endian) */
5844 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5845 CAN_Sgn.UnsignedSgn &= 0x00000003;
5846 L4_MABX_B.SFunction1_o3_dn = ((real_T) CAN_Sgn.UnsignedSgn);
5847
5848 /* ...... "PitchAngleExRangeFigureOfMerit" (50|2, standard signal, unsigned int, little endian) */
5849 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5850 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5851 CAN_Sgn.UnsignedSgn &= 0x00000003;
5852 L4_MABX_B.SFunction1_o4_nb = ((real_T) CAN_Sgn.UnsignedSgn);
5853
5854 /* ...... "RollAngleExRangeCompensation" (52|2, standard signal, unsigned int, little endian) */
5855 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5856 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5857 CAN_Sgn.UnsignedSgn &= 0x00000003;
5858 L4_MABX_B.SFunction1_o5_j = ((real_T) CAN_Sgn.UnsignedSgn);
5859
5860 /* ...... "RollAngleExRangeFigureOfMerit" (54|2, standard signal, unsigned int, little endian) */
5861 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5862 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5863 CAN_Sgn.UnsignedSgn &= 0x00000003;
5864 L4_MABX_B.SFunction1_o6_fb = ((real_T) CAN_Sgn.UnsignedSgn);
5865
5866 /* ...... "RllAndPtchExRngMsurementLatency" (56|8, standard signal, unsigned int, little endian) */
5867 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5868 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5869 L4_MABX_B.SFunction1_o7_nl = 0.5 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5870 }
5871 }
5872 } else {
5873 /* set RX status to 0 because no new message has arrived */
5874 L4_MABX_B.SFunction1_o8_nr = 0.0;
5875 }
5876 }
5877 }
5878
5879 /* End of Constant: '<S445>/Constant' */
5880 /* End of Outputs for SubSystem: '<S625>/SSI2_031' */
5881
5882 /* DataTypeConversion: '<S625>/Data Type Conversion1' */
5883 L4_MABX_B.PitchAngleExRange = L4_MABX_B.SFunction1_o1_g5;
5884
5885 /* Outputs for Enabled SubSystem: '<S616>/PX2_LanePosEst' incorporates:
5886 * EnablePort: '<S619>/Enable'
5887 */
5888 /* Constant: '<S442>/Constant' */
5889 if (L4_MABX_P.Constant_Value_ig) {
5890 /* S-Function (rti_commonblock): '<S619>/S-Function1' */
5891 /* This comment workarounds a code generation problem */
5892
5893 /* dSPACE RTICAN RX Message Block: "PX2_LanePosEst" Id:769 */
5894 {
5895 UInt32 *CAN_Msg;
5896 static dsfloat time_old = 0.0;
5897
5898 /* Read status and timestamp info (previous message) */
5899 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp !=
5900 time_old) {
5901 /* ... save timestamp info for the calculation of the RX status
5902 during the consecutive sample hit*/
5903 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp;
5904
5905 /* ... set the processed flag to one */
5906 L4_MABX_B.SFunction1_o5_k = 1.0;
5907 L4_MABX_B.SFunction1_o6_d = (real_T)
5908 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp;
5909 L4_MABX_B.SFunction1_o7_j = (real_T)
5910 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].deltatime;
5911 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].data;
5912
5913 /* Decode CAN message */
5914 {
5915 {
5916 rtican_Signal_t CAN_Sgn;
5917
5918 /* ...... "PX2_LanePosEstAngle" (0|16, standard signal, signed int, little endian) */
5919 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5920 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5921 CAN_Sgn.SignedSgn &= 0x0000FFFF;
5922 if (CAN_Sgn.SignedSgn >> 15) {
5923 CAN_Sgn.SignedSgn |= 0xFFFF0000;
5924 }
5925
5926 L4_MABX_B.SFunction1_o1_cd = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
5927
5928 /* ...... "PX2_LanePosEstNumPoints" (16|8, standard signal, unsigned int, little endian) */
5929 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5930 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5931 L4_MABX_B.SFunction1_o2_fl = ((real_T) CAN_Sgn.UnsignedSgn);
5932
5933 /* ...... "PX2_LanePosEstPosition" (24|16, standard signal, signed int, little endian) */
5934 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5935 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5936 CAN_Sgn.SignedSgn &= 0x0000FFFF;
5937 if (CAN_Sgn.SignedSgn >> 15) {
5938 CAN_Sgn.SignedSgn |= 0xFFFF0000;
5939 }
5940
5941 L4_MABX_B.SFunction1_o3_hs = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
5942
5943 /* ...... "PX2_LanePosEstNumLanes" (40|4, standard signal, unsigned int, little endian) */
5944 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5945 CAN_Sgn.UnsignedSgn &= 0x0000000F;
5946 L4_MABX_B.SFunction1_o4_cp = ((real_T) CAN_Sgn.UnsignedSgn);
5947 }
5948 }
5949 } else {
5950 /* set RX status to 0 because no new message has arrived */
5951 L4_MABX_B.SFunction1_o5_k = 0.0;
5952 }
5953 }
5954 }
5955
5956 /* End of Outputs for SubSystem: '<S616>/PX2_LanePosEst' */
5957
5958 /* Outputs for Enabled SubSystem: '<S623>/Bendix_Prop2C2_Status_30' incorporates:
5959 * EnablePort: '<S624>/Enable'
5960 */
5961 /* Constant: '<S444>/Constant' */
5962 if (L4_MABX_P.Constant_Value_m > 0.0) {
5963 /* S-Function (rti_commonblock): '<S624>/S-Function1' */
5964 /* This comment workarounds a code generation problem */
5965
5966 /* dSPACE RTICAN RX Message Block: "Prop2C2_Status_30" Id:419382064 */
5967 {
5968 UInt32 *CAN_Msg;
5969 static dsfloat time_old = 0.0;
5970
5971 /* Read status and timestamp info (previous message) */
5972 if (can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].timestamp !=
5973 time_old) {
5974 /* ... save timestamp info for the calculation of the RX status
5975 during the consecutive sample hit*/
5976 time_old = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].
5977 timestamp;
5978
5979 /* ... set the processed flag to one */
5980 L4_MABX_B.SFunction1_o11_g = 1.0;
5981 L4_MABX_B.SFunction1_o12_o = (real_T)
5982 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].timestamp;
5983 L4_MABX_B.SFunction1_o13_d = (real_T)
5984 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].deltatime;
5985 CAN_Msg = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].data;
5986
5987 /* Decode CAN message */
5988 {
5989 {
5990 rtican_Signal_t CAN_Sgn;
5991
5992 /* ...... "PressureP4" (0|8, standard signal, unsigned int, little endian) */
5993 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5994 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5995 L4_MABX_B.SFunction1_o1_ja = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5996
5997 /* ...... "PressureP1" (8|8, standard signal, unsigned int, little endian) */
5998 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5999 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6000 L4_MABX_B.SFunction1_o2_dq = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
6001
6002 /* ...... "PressureP21" (16|8, standard signal, unsigned int, little endian) */
6003 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
6004 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6005 L4_MABX_B.SFunction1_o3_ha = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
6006
6007 /* ...... "PressureP22" (24|8, standard signal, unsigned int, little endian) */
6008 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
6009 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6010 L4_MABX_B.SFunction1_o4_ond = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
6011
6012 /* ...... "PressureP42" (32|8, standard signal, unsigned int, little endian) */
6013 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6014 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6015 L4_MABX_B.SFunction1_o5_cy = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
6016
6017 /* ...... "XPR1ControlStatus" (40|4, standard signal, unsigned int, little endian) */
6018 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
6019 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6020 L4_MABX_B.SFunction1_o6_k = ((real_T) CAN_Sgn.UnsignedSgn);
6021
6022 /* ...... "XPR2ControlStatus" (44|4, standard signal, unsigned int, little endian) */
6023 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
6024 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
6025 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6026 L4_MABX_B.SFunction1_o7_ds = ((real_T) CAN_Sgn.UnsignedSgn);
6027
6028 /* ...... "XPR3ControlStatus" (48|4, standard signal, unsigned int, little endian) */
6029 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
6030 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6031 L4_MABX_B.SFunction1_o8_bh = ((real_T) CAN_Sgn.UnsignedSgn);
6032
6033 /* ...... "XPRErrorState" (56|2, standard signal, unsigned int, little endian) */
6034 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
6035 CAN_Sgn.UnsignedSgn &= 0x00000003;
6036 L4_MABX_B.SFunction1_o9_h = ((real_T) CAN_Sgn.UnsignedSgn);
6037
6038 /* ...... "XPRControlMode" (58|4, standard signal, unsigned int, little endian) */
6039 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
6040 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
6041 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6042 L4_MABX_B.SFunction1_o10_o = ((real_T) CAN_Sgn.UnsignedSgn);
6043 }
6044 }
6045 } else {
6046 /* set RX status to 0 because no new message has arrived */
6047 L4_MABX_B.SFunction1_o11_g = 0.0;
6048 }
6049 }
6050 }
6051
6052 /* End of Constant: '<S444>/Constant' */
6053 /* End of Outputs for SubSystem: '<S623>/Bendix_Prop2C2_Status_30' */
6054
6055 /* DataTypeConversion: '<S623>/Data Type Conversion15' */
6056 PositionFinalLimited = L4_MABX_B.SFunction1_o10_o;
6057 if (PositionFinalLimited < 256.0) {
6058 if (PositionFinalLimited >= 0.0) {
6059 starting_index = (uint8_T)PositionFinalLimited;
6060 } else {
6061 starting_index = 0U;
6062 }
6063 } else {
6064 starting_index = MAX_uint8_T;
6065 }
6066
6067 L4_MABX_B.DataTypeConversion15_o = starting_index;
6068
6069 /* End of DataTypeConversion: '<S623>/Data Type Conversion15' */
6070
6071 /* DataTypeConversion: '<S623>/Data Type Conversion5' */
6072 L4_MABX_B.XPRControlMode = (ENUM_XPR_CONTROL_MODE_T)
6073 safe_cast_to_ENUM_XPR_CONTROL_M(L4_MABX_B.DataTypeConversion15_o);
6074
6075 /* DataTypeConversion: '<S623>/Data Type Conversion4' */
6076 PositionFinalLimited = L4_MABX_B.SFunction1_o9_h;
6077 if (PositionFinalLimited < 256.0) {
6078 if (PositionFinalLimited >= 0.0) {
6079 starting_index = (uint8_T)PositionFinalLimited;
6080 } else {
6081 starting_index = 0U;
6082 }
6083 } else {
6084 starting_index = MAX_uint8_T;
6085 }
6086
6087 L4_MABX_B.DataTypeConversion4_es = starting_index;
6088
6089 /* End of DataTypeConversion: '<S623>/Data Type Conversion4' */
6090
6091 /* DataTypeConversion: '<S623>/Data Type Conversion14' */
6092 L4_MABX_B.XPRErrorState = (ENUM_XPR_ERROR_STATE_T)
6093 safe_cast_to_ENUM_XPR_ERROR_STA(L4_MABX_B.DataTypeConversion4_es);
6094
6095 /* DataTypeConversion: '<S623>/Data Type Conversion7' */
6096 L4_MABX_B.PressureP1 = L4_MABX_B.SFunction1_o2_dq;
6097
6098 /* DataTypeConversion: '<S623>/Data Type Conversion6' */
6099 L4_MABX_B.PressureP4 = L4_MABX_B.SFunction1_o1_ja;
6100
6101 /* DataTypeConversion: '<S623>/Data Type Conversion11' */
6102 L4_MABX_B.PressureP21 = L4_MABX_B.SFunction1_o3_ha;
6103
6104 /* DataTypeConversion: '<S623>/Data Type Conversion12' */
6105 L4_MABX_B.PressureP22 = L4_MABX_B.SFunction1_o4_ond;
6106
6107 /* DataTypeConversion: '<S623>/Data Type Conversion13' */
6108 L4_MABX_B.PressureP42 = L4_MABX_B.SFunction1_o5_cy;
6109
6110 /* RelationalOperator: '<S655>/Operator' incorporates:
6111 * Constant: '<S461>/Constant3'
6112 * Constant: '<S653>/Constant1'
6113 */
6114 L4_MABX_B.Operator_iv = (PROPB_REAX_CHANNEL_APV ==
6115 L4_MABX_P.Constant1_Value_gs);
6116
6117 /* Outputs for Enabled SubSystem: '<S573>/PropB_REAX_2_13' incorporates:
6118 * EnablePort: '<S575>/Enable'
6119 */
6120 if (L4_MABX_B.Operator_iv) {
6121 /* S-Function (rti_commonblock): '<S575>/S-Function1' */
6122 /* This comment workarounds a code generation problem */
6123
6124 /* dSPACE RTICAN RX Message Block: "PropB_REAX_2_13" Id:419426323 */
6125 {
6126 UInt32 *CAN_Msg;
6127 static dsfloat time_old = 0.0;
6128
6129 /* Read status and timestamp info (previous message) */
6130 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].timestamp !=
6131 time_old) {
6132 /* ... save timestamp info for the calculation of the RX status
6133 during the consecutive sample hit*/
6134 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].
6135 timestamp;
6136
6137 /* ... set the processed flag to one */
6138 L4_MABX_B.SFunction1_o3_ds = 1.0;
6139 L4_MABX_B.SFunction1_o4_cn = (real_T)
6140 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].timestamp;
6141 L4_MABX_B.SFunction1_o5_ju = (real_T)
6142 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].deltatime;
6143 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].data;
6144
6145 /* Decode CAN message */
6146 {
6147 {
6148 rtican_Signal_t CAN_Sgn;
6149
6150 /* ...... "PropB_REAX_2_ActualHandwheelPos" (0|32, standard signal, signed int, little endian) */
6151 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6152 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
6153 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
6154 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
6155 L4_MABX_B.SFunction1_o1_ml = 0.0439453125 * ( ((real_T)
6156 CAN_Sgn.SignedSgn) );
6157
6158 /* ...... "PropB_REAX_2_EchoedStrWhlPos" (32|32, standard signal, signed int, little endian) */
6159 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6160 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
6161 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
6162 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
6163 L4_MABX_B.SFunction1_o2_gpw = 0.0439453125 * ( ((real_T)
6164 CAN_Sgn.SignedSgn) );
6165 }
6166 }
6167 } else {
6168 /* set RX status to 0 because no new message has arrived */
6169 L4_MABX_B.SFunction1_o3_ds = 0.0;
6170 }
6171 }
6172 }
6173
6174 /* End of Outputs for SubSystem: '<S573>/PropB_REAX_2_13' */
6175
6176 /* RelationalOperator: '<S654>/Operator' incorporates:
6177 * Constant: '<S461>/Constant3'
6178 * Constant: '<S653>/Constant'
6179 */
6180 L4_MABX_B.Operator_bu = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant_Value_c4);
6181
6182 /* RelationalOperator: '<S656>/Operator' incorporates:
6183 * Constant: '<S461>/Constant3'
6184 * Constant: '<S653>/Constant2'
6185 */
6186 L4_MABX_B.Operator_mc = (PROPB_REAX_CHANNEL_APV ==
6187 L4_MABX_P.Constant2_Value_px);
6188
6189 /* RelationalOperator: '<S657>/Operator' incorporates:
6190 * Constant: '<S461>/Constant3'
6191 * Constant: '<S653>/Constant3'
6192 */
6193 L4_MABX_B.Operator_en = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant3_Value_h);
6194
6195 /* RelationalOperator: '<S658>/Operator' incorporates:
6196 * Constant: '<S461>/Constant3'
6197 * Constant: '<S653>/Constant4'
6198 */
6199 L4_MABX_B.Operator_il = (PROPB_REAX_CHANNEL_APV ==
6200 L4_MABX_P.Constant4_Value_br);
6201
6202 /* RelationalOperator: '<S659>/Operator' incorporates:
6203 * Constant: '<S461>/Constant3'
6204 * Constant: '<S653>/Constant5'
6205 */
6206 L4_MABX_B.Operator_et = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant5_Value_n);
6207
6208 /* Logic: '<S461>/OR' */
6209 L4_MABX_B.EnablePropB_ReAX_CAN6 = (L4_MABX_B.Operator_bu ||
6210 L4_MABX_B.Operator_mc || L4_MABX_B.Operator_en || L4_MABX_B.Operator_il ||
6211 L4_MABX_B.Operator_et);
6212
6213 /* Outputs for Enabled SubSystem: '<S574>/PropB_REAX_2_13' incorporates:
6214 * EnablePort: '<S576>/Enable'
6215 */
6216 if (L4_MABX_B.EnablePropB_ReAX_CAN6) {
6217 /* S-Function (rti_commonblock): '<S576>/S-Function1' */
6218 /* This comment workarounds a code generation problem */
6219
6220 /* dSPACE RTICAN RX Message Block: "PropB_REAX_2_13" Id:486535187 */
6221 {
6222 UInt32 *CAN_Msg;
6223 static dsfloat time_old = 0.0;
6224
6225 /* Read status and timestamp info (previous message) */
6226 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].timestamp !=
6227 time_old) {
6228 /* ... save timestamp info for the calculation of the RX status
6229 during the consecutive sample hit*/
6230 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].
6231 timestamp;
6232
6233 /* ... set the processed flag to one */
6234 L4_MABX_B.SFunction1_o3_cb = 1.0;
6235 L4_MABX_B.SFunction1_o4_ei = (real_T)
6236 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].timestamp;
6237 L4_MABX_B.SFunction1_o5_dl = (real_T)
6238 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].deltatime;
6239 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].data;
6240
6241 /* Decode CAN message */
6242 {
6243 {
6244 rtican_Signal_t CAN_Sgn;
6245
6246 /* ...... "PropB_REAX_2_ActualHandwheelPos" (0|32, standard signal, signed int, little endian) */
6247 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6248 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
6249 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
6250 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
6251 L4_MABX_B.SFunction1_o1_dd = 0.0439453125 * ( ((real_T)
6252 CAN_Sgn.SignedSgn) );
6253
6254 /* ...... "PropB_REAX_2_EchoedStrWhlPos" (32|32, standard signal, signed int, little endian) */
6255 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6256 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
6257 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
6258 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
6259 L4_MABX_B.SFunction1_o2_nw = 0.0439453125 * ( ((real_T)
6260 CAN_Sgn.SignedSgn) );
6261 }
6262 }
6263 } else {
6264 /* set RX status to 0 because no new message has arrived */
6265 L4_MABX_B.SFunction1_o3_cb = 0.0;
6266 }
6267 }
6268 }
6269
6270 /* End of Outputs for SubSystem: '<S574>/PropB_REAX_2_13' */
6271
6272 /* Switch: '<S438>/Switch' */
6273 if (L4_MABX_B.Operator_iv) {
6274 ReAX_ActualHandwheelPos = L4_MABX_B.SFunction1_o1_ml;
6275 } else {
6276 ReAX_ActualHandwheelPos = L4_MABX_B.SFunction1_o1_dd;
6277 }
6278
6279 /* S-Function (dsa_tcpip_setup_sfcn): '<S393>/dsa_tcpip_setup' */
6280
6281 /* Level2 S-Function Block: '<S393>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
6282 {
6283 SimStruct *rts = L4_MABX_M->childSfunctions[3];
6284 ssSetOutputPortSignal(rts, 0, &EthernetLinkStatus);
6285 sfcnOutputs(rts,0);
6286 }
6287
6288 /* Constant: '<S3>/Enable' */
6289 L4_MABX_B.Enable = L4_MABX_P.Enable_Value;
6290
6291 /* DiscretePulseGenerator: '<S392>/Heartbeat' */
6292 L4_MABX_B.Heartbeat = (L4_MABX_DW.clockTickCounter < L4_MABX_P.Heartbeat_Duty)
6293 && (L4_MABX_DW.clockTickCounter >= 0) ? L4_MABX_P.Heartbeat_Amp : 0.0;
6294 if (L4_MABX_DW.clockTickCounter >= L4_MABX_P.Heartbeat_Period - 1.0) {
6295 L4_MABX_DW.clockTickCounter = 0;
6296 } else {
6297 L4_MABX_DW.clockTickCounter++;
6298 }
6299
6300 /* End of DiscretePulseGenerator: '<S392>/Heartbeat' */
6301
6302 /* DataTypeConversion: '<S392>/Cast To Boolean' */
6303 MABX_Heartbeat = (L4_MABX_B.Heartbeat != 0.0);
6304
6305 /* UnitDelay: '<S3>/Unit_Delay' */
6306 L4_MABX_B.EStop_j = L4_MABX_DW.Unit_Delay_79_DSTATE;
6307 L4_MABX_B.EnableSW = L4_MABX_DW.Unit_Delay_80_DSTATE;
6308 L4_MABX_B.EngagePB_g = L4_MABX_DW.Unit_Delay_81_DSTATE;
6309 L4_MABX_B.TargetVelocity_kph_m = L4_MABX_DW.Unit_Delay_140_DSTATE;
6310 L4_MABX_B.CurrentVelocity_kph_k = L4_MABX_DW.Unit_Delay_139_DSTATE;
6311
6312 /* Sum: '<S401>/Subtract' */
6313 L4_MABX_B.Subtract_e = L4_MABX_B.TargetVelocity_kph_m -
6314 L4_MABX_B.CurrentVelocity_kph_k;
6315
6316 /* RelationalOperator: '<S402>/Compare' incorporates:
6317 * Constant: '<S402>/Constant'
6318 */
6319 L4_MABX_B.Compare_f = (L4_MABX_B.Subtract_e >=
6320 L4_MABX_P.CompareToConstant_const_k);
6321
6322 /* Logic: '<S401>/AND' */
6323 EngageRequest = (L4_MABX_B.EngagePB_g && L4_MABX_B.Compare_f);
6324
6325 /* UnitDelay: '<S3>/Unit_Delay' */
6326 L4_MABX_B.LogPB = L4_MABX_DW.Unit_Delay_82_DSTATE;
6327 L4_MABX_B.AutonomousEnabled_a = L4_MABX_DW.Unit_Delay_45_DSTATE;
6328 L4_MABX_B.MABX_Mode_h = L4_MABX_DW.Unit_Delay_47_DSTATE;
6329
6330 /* BusCreator: '<S392>/Bus Creator' */
6331 L4_MABX_B.BusCreator.Heartbeat = MABX_Heartbeat;
6332 L4_MABX_B.BusCreator.EStop = L4_MABX_B.EStop_j;
6333 L4_MABX_B.BusCreator.EnableSW = L4_MABX_B.EnableSW;
6334 L4_MABX_B.BusCreator.EngagePB = EngageRequest;
6335 L4_MABX_B.BusCreator.LogEventPB = L4_MABX_B.LogPB;
6336 L4_MABX_B.BusCreator.AutonomousEnabled = L4_MABX_B.AutonomousEnabled_a;
6337 L4_MABX_B.BusCreator.MABX_Mode = L4_MABX_B.MABX_Mode_h;
6338
6339 /* S-Function (dsa_gen_tx_RTMapsEncode_sfun): '<S400>/Encoder' */
6340 Update_Tx_RTMapsEncode((RTMapsTX*)&L4_MABX_B.BusCreator,
6341 &L4_MABX_B.Encoder_o1[0], &L4_MABX_B.Encoder_o2);
6342
6343 /* S-Function (dsa_tcpip_udp_sfcn): '<S394>/TCPIP_Com' */
6344
6345 /* Level2 S-Function Block: '<S394>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
6346 {
6347 SimStruct *rts = L4_MABX_M->childSfunctions[4];
6348 sfcnOutputs(rts,0);
6349 }
6350
6351 /* DataTypeConversion: '<S391>/Data Type Conversion' */
6352 L4_MABX_B.DataTypeConversion_aq = L4_MABX_B.TCPIP_Com_o2;
6353
6354 /* S-Function (dsa_gen_rx_RTMapsDecode_sfun): '<S397>/Decoder' */
6355 Update_Rx_RTMapsDecode((uint8_T*)&L4_MABX_B.TCPIP_Com_o3[0],
6356 L4_MABX_B.DataTypeConversion_aq, L4_MABX_B.TCPIP_Com_o1[2],
6357 &L4_MABX_B.Decoder_o1, &L4_MABX_B.Decoder_o2, &L4_MABX_B.Decoder_o3);
6358
6359 /* RelationalOperator: '<S399>/Compare' incorporates:
6360 * Constant: '<S399>/Constant'
6361 */
6362 L4_MABX_B.Compare_c = ((int32_T)L4_MABX_B.Decoder_o1.Heartbeat > (int32_T)
6363 L4_MABX_P.Constant_Value_ap);
6364
6365 /* UnitDelay: '<S398>/Delay Input1' */
6366 L4_MABX_B.Uk1_f = L4_MABX_DW.DelayInput1_DSTATE_n;
6367
6368 /* RelationalOperator: '<S398>/FixPt Relational Operator' */
6369 L4_MABX_B.FixPtRelationalOperator = ((int32_T)L4_MABX_B.Compare_c > (int32_T)
6370 L4_MABX_B.Uk1_f);
6371
6372 /* UnitDelay: '<S396>/Unit Delay' */
6373 L4_MABX_B.UnitDelay = L4_MABX_DW.UnitDelay_DSTATE;
6374
6375 /* Switch: '<S396>/Switch' incorporates:
6376 * Constant: '<S396>/Constant1'
6377 */
6378 if (L4_MABX_B.FixPtRelationalOperator) {
6379 L4_MABX_B.Count = L4_MABX_P.Constant1_Value_e;
6380 } else {
6381 /* Sum: '<S396>/Sum' incorporates:
6382 * Constant: '<S396>/Constant'
6383 */
6384 L4_MABX_B.Sum_l = L4_MABX_P.Constant_Value_l + L4_MABX_B.UnitDelay;
6385 L4_MABX_B.Count = L4_MABX_B.Sum_l;
6386 }
6387
6388 /* End of Switch: '<S396>/Switch' */
6389
6390 /* Switch: '<S396>/Switch1' incorporates:
6391 * Constant: '<S396>/Constant2'
6392 * Constant: '<S396>/Constant3'
6393 */
6394 if (L4_MABX_B.Count > L4_MABX_P.Switch1_Threshold) {
6395 Heartbeat_Ok = L4_MABX_P.Constant2_Value_e;
6396 } else {
6397 Heartbeat_Ok = L4_MABX_P.Constant3_Value_fa;
6398 }
6399
6400 /* End of Switch: '<S396>/Switch1' */
6401
6402 /* Logic: '<S391>/AND' */
6403 RTMapsOk = ((EthernetLinkStatus != 0.0) && Heartbeat_Ok);
6404
6405 /* Switch: '<S391>/Switch9' incorporates:
6406 * Constant: '<S391>/Failure'
6407 * Constant: '<S391>/No Data'
6408 * Switch: '<S391>/Switch'
6409 * Switch: '<S391>/Switch1'
6410 * Switch: '<S391>/Switch3'
6411 * Switch: '<S391>/Switch4'
6412 * Switch: '<S391>/Switch5'
6413 */
6414 if (RTMapsOk) {
6415 /* Gain: '<S391>/for_logging7' */
6416 L4_MABX_B.SupervisorMode_b = (int8_T)(((uint32_T)L4_MABX_P.for_logging7_Gain
6417 * L4_MABX_B.Decoder_o1.SupervisorMode) >> 7);
6418 SupervisorMode = (uint8_T)L4_MABX_B.SupervisorMode_b;
6419
6420 /* Gain: '<S391>/for_logging' */
6421 L4_MABX_B.for_logging = L4_MABX_P.for_logging_Gain *
6422 L4_MABX_B.Decoder_o1.CurrentAzimuth;
6423 CurrentAzimuth_rad = L4_MABX_B.for_logging;
6424
6425 /* Gain: '<S391>/for_logging1' */
6426 L4_MABX_B.for_logging1 = L4_MABX_P.for_logging1_Gain *
6427 L4_MABX_B.Decoder_o1.TargetAzimuth;
6428 TargetAzimuth_rad = L4_MABX_B.for_logging1;
6429
6430 /* Gain: '<S391>/m//s_to_km//h_2' */
6431 L4_MABX_B.ms_to_kmh_2 = L4_MABX_P.ms_to_kmh_2_Gain *
6432 L4_MABX_B.Decoder_o1.TargetVelocity;
6433 TargetVelocity_kph = L4_MABX_B.ms_to_kmh_2;
6434
6435 /* Gain: '<S391>/for_logging2' */
6436 L4_MABX_B.for_logging2 = L4_MABX_P.for_logging2_Gain *
6437 L4_MABX_B.Decoder_o1.Curvature;
6438 Curvature = L4_MABX_B.for_logging2;
6439
6440 /* Gain: '<S391>/for_logging3' */
6441 L4_MABX_B.for_logging3 = L4_MABX_P.for_logging3_Gain *
6442 L4_MABX_B.Decoder_o1.CrosstrackError;
6443 CrosstrackError = L4_MABX_B.for_logging3;
6444 } else {
6445 SupervisorMode = L4_MABX_P.Failure_Value_k;
6446 CurrentAzimuth_rad = L4_MABX_P.NoData_Value;
6447 TargetAzimuth_rad = L4_MABX_P.NoData_Value;
6448 TargetVelocity_kph = L4_MABX_P.NoData_Value;
6449 Curvature = L4_MABX_P.NoData_Value;
6450 CrosstrackError = L4_MABX_P.NoData_Value;
6451 }
6452
6453 /* End of Switch: '<S391>/Switch9' */
6454
6455 /* Outputs for Atomic SubSystem: '<S65>/Task_10ms' */
6456 /* RelationalOperator: '<S95>/Operator' incorporates:
6457 * Constant: '<S76>/Supervisor_Autonomous_Mode'
6458 */
6459 L4_MABX_B.Operator_ns = (L4_MABX_P.Supervisor_Autonomous_Mode_Valu ==
6460 SupervisorMode);
6461
6462 /* Logic: '<S76>/AND' */
6463 AutonomousEnabled = (L4_MABX_B.Operator_ns && RTMapsOk && EnableSw && EStop);
6464
6465 /* Logic: '<S83>/Logical Operator' */
6466 L4_MABX_B.LogicalOperator_dy = !AutonomousEnabled;
6467
6468 /* Outputs for Atomic SubSystem: '<S83>/If_Then_Else' */
6469
6470 /* Constant: '<S83>/APTC_PEDAL_POSITION_OVR_APV' incorporates:
6471 * Constant: '<S83>/APTC_DESIRED_PEDAL_POSITION_APV'
6472 */
6473 L4_MABX_If_Then_Else(L4_MABX_P.APTC_PEDAL_POSITION_OVR_APV_Val,
6474 L4_MABX_P.APTC_DESIRED_PEDAL_POSITION_APV,
6475 Pedal_pwm_position, &L4_MABX_B.If_Then_Else_o);
6476
6477 /* End of Outputs for SubSystem: '<S83>/If_Then_Else' */
6478
6479 /* DataTypeConversion: '<S83>/Data Type Conversion1' */
6480 L4_MABX_B.DataTypeConversion1_ht = L4_MABX_B.SFunction1_o5_j3;
6481
6482 /* Lookup_n-D: '<S83>/2-D Lookup Table' */
6483 L4_MABX_B.uDLookupTable = look2_binlcapw(L4_MABX_B.If_Then_Else_o.Switch,
6484 L4_MABX_B.DataTypeConversion1_ht, APTC_TRQ_PED_TRQ_POS_STEP_MPV,
6485 APTC_TRQ_PED_TRQ_ESPD_STEP_MPV, APTC_TRQ_PED_TRQ_DATA_MPV,
6486 L4_MABX_P.uDLookupTable_maxIndex, 8U);
6487
6488 /* DataTypeConversion: '<S77>/Data Type Conversion5' */
6489 L4_MABX_B.DataTypeConversion5_oo = L4_MABX_B.SFunction1_o1_m1;
6490
6491 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
6492 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
6493 L4_MABX_B.distanceSpdTarget_e = L4_MABX_DW.TmpRTBAtSignalConversion1Inport;
6494 }
6495
6496 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
6497 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
6498 */
6499 switch (LONG_SPEED_SRC_SELECTOR_APV) {
6500 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
6501 /* SignalConversion: '<S81>/Signal Conversion1' */
6502 L4_MABX_B.Vehicle_speed_target_g = L4_MABX_B.distanceSpdTarget_e;
6503 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_g;
6504 break;
6505
6506 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
6507 /* SignalConversion: '<S81>/Signal Conversion4' incorporates:
6508 * Constant: '<S81>/VSPD_TARGET_KPH_APV'
6509 */
6510 L4_MABX_B.Vehicle_speed_target_o5 = VSPD_TARGET_KPH_APV;
6511 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_o5;
6512 break;
6513
6514 default:
6515 /* SignalConversion: '<S81>/Signal Conversion9' */
6516 L4_MABX_B.Vehicle_speed_target_k = TargetVelocity_kph;
6517 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_k;
6518 break;
6519 }
6520
6521 /* SignalConversion: '<S81>/Signal Conversion16' */
6522 L4_MABX_B.VSPD_TARGET_KPH_APV_g = L4_MABX_B.Vehicle_speed_target_o;
6523
6524 /* Saturate: '<S81>/Saturation9' incorporates:
6525 * Constant: '<S81>/VSPD_HYST_KPH_APV'
6526 */
6527 DeltaTime = L4_MABX_P.VSPD_HYST_KPH_APV_Value;
6528 Time56 = L4_MABX_P.Saturation9_LowerSat;
6529 PositionFinalLimited = L4_MABX_P.Saturation9_UpperSat;
6530 if (DeltaTime > PositionFinalLimited) {
6531 L4_MABX_B.VSPD_HYST_KPH_APV_f = PositionFinalLimited;
6532 } else if (DeltaTime < Time56) {
6533 L4_MABX_B.VSPD_HYST_KPH_APV_f = Time56;
6534 } else {
6535 L4_MABX_B.VSPD_HYST_KPH_APV_f = DeltaTime;
6536 }
6537
6538 /* End of Saturate: '<S81>/Saturation9' */
6539
6540 /* Sum: '<S103>/Add' */
6541 L4_MABX_B.Add_k = L4_MABX_B.VSPD_TARGET_KPH_APV_g +
6542 L4_MABX_B.VSPD_HYST_KPH_APV_f;
6543
6544 /* RelationalOperator: '<S103>/Relational Operator' */
6545 L4_MABX_B.f_vspd_geq_than_target_plus_hys = (L4_MABX_B.DataTypeConversion5_oo >=
6546 L4_MABX_B.Add_k);
6547
6548 /* Saturate: '<S81>/Saturation1' incorporates:
6549 * Constant: '<S81>/VSPD_BRAKE_STOP_THRESH_KPH_APV'
6550 */
6551 DeltaTime = L4_MABX_P.VSPD_BRAKE_STOP_THRESH_KPH_APV_;
6552 Time56 = L4_MABX_P.Saturation1_LowerSat;
6553 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat;
6554 if (DeltaTime > PositionFinalLimited) {
6555 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = PositionFinalLimited;
6556 } else if (DeltaTime < Time56) {
6557 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = Time56;
6558 } else {
6559 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = DeltaTime;
6560 }
6561
6562 /* End of Saturate: '<S81>/Saturation1' */
6563
6564 /* RelationalOperator: '<S103>/Relational Operator1' */
6565 L4_MABX_B.f_target_is_stop_thresh = (L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b
6566 == L4_MABX_B.VSPD_TARGET_KPH_APV_g);
6567
6568 /* RelationalOperator: '<S199>/Compare' incorporates:
6569 * Constant: '<S199>/Constant'
6570 */
6571 L4_MABX_B.Compare_e = (L4_MABX_B.VSPD_TARGET_KPH_APV_g ==
6572 L4_MABX_P.Constant_Value_k);
6573
6574 /* RelationalOperator: '<S103>/Relational Operator2' */
6575 L4_MABX_B.RelationalOperator2_p = (L4_MABX_B.VSPD_HYST_KPH_APV_f >=
6576 L4_MABX_B.VSPD_TARGET_KPH_APV_g);
6577
6578 /* RelationalOperator: '<S103>/Relational Operator3' */
6579 L4_MABX_B.RelationalOperator3 = (L4_MABX_B.VSPD_HYST_KPH_APV_f >=
6580 L4_MABX_B.DataTypeConversion5_oo);
6581
6582 /* Logic: '<S103>/Logical Operator' */
6583 L4_MABX_B.f_vspd_leq_than_hyst_and_target = (L4_MABX_B.RelationalOperator2_p &&
6584 L4_MABX_B.RelationalOperator3);
6585
6586 /* Logic: '<S103>/Logical Operator1' */
6587 L4_MABX_B.LogicalOperator1_mr = (L4_MABX_B.f_vspd_geq_than_target_plus_hys ||
6588 L4_MABX_B.f_target_is_stop_thresh || L4_MABX_B.Compare_e ||
6589 L4_MABX_B.f_vspd_leq_than_hyst_and_target);
6590
6591 /* DataTypeConversion: '<S77>/Data Type Conversion4' */
6592 L4_MABX_B.DataTypeConversion4_d5 = AutonomousEnabled;
6593
6594 /* Logic: '<S103>/Logical Operator2' */
6595 L4_MABX_B.F_Brake_control_active = (L4_MABX_B.LogicalOperator1_mr &&
6596 L4_MABX_B.DataTypeConversion4_d5);
6597
6598 /* DataTypeConversion: '<S79>/Data Type Conversion4' */
6599 L4_MABX_B.DataTypeConversion4_ib = L4_MABX_B.SFunction1_o1_m1;
6600
6601 /* DataTypeConversion: '<S77>/Data Type Conversion1' */
6602 PositionFinalLimited = L4_MABX_B.SFunction1_o8_o;
6603 if (PositionFinalLimited < 256.0) {
6604 if (PositionFinalLimited >= 0.0) {
6605 starting_index = (uint8_T)PositionFinalLimited;
6606 } else {
6607 starting_index = 0U;
6608 }
6609 } else {
6610 starting_index = MAX_uint8_T;
6611 }
6612
6613 L4_MABX_B.DataTypeConversion1_ba = starting_index;
6614
6615 /* End of DataTypeConversion: '<S77>/Data Type Conversion1' */
6616
6617 /* DataTypeConversion: '<S77>/Data Type Conversion3' */
6618 L4_MABX_B.BrkPedArbBrakeSwitch_c = (ENUM_J1939_SWITCH_T)
6619 L4_MABX_B.DataTypeConversion1_ba;
6620
6621 /* DataTypeConversion: '<S203>/Data Type Conversion1' */
6622 L4_MABX_B.DataTypeConversion1_cy = L4_MABX_B.BrkPedArbBrakeSwitch_c;
6623
6624 /* RelationalOperator: '<S209>/Compare' incorporates:
6625 * Constant: '<S209>/Constant'
6626 */
6627 L4_MABX_B.Compare_e5 = (L4_MABX_B.DataTypeConversion1_cy ==
6628 L4_MABX_P.CompareToConstant2_const);
6629
6630 /* Logic: '<S203>/Logical Operator2' */
6631 L4_MABX_B.LogicalOperator2_nt = !L4_MABX_B.Compare_e5;
6632
6633 /* DataTypeConversion: '<S203>/Data Type Conversion5' */
6634 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o4_edl);
6635 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
6636 PositionFinalLimited = 0.0;
6637 } else {
6638 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
6639 }
6640
6641 L4_MABX_B.DataTypeConversion5_p = (uint8_T)(PositionFinalLimited < 0.0 ?
6642 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
6643 (uint8_T)PositionFinalLimited);
6644
6645 /* End of DataTypeConversion: '<S203>/Data Type Conversion5' */
6646
6647 /* DataTypeConversion: '<S203>/Data Type Conversion3' */
6648 L4_MABX_B.DataTypeConversion3_l = (ENUM_J1939_SWITCH_T)
6649 L4_MABX_B.DataTypeConversion5_p;
6650
6651 /* RelationalOperator: '<S207>/Compare' incorporates:
6652 * Constant: '<S207>/Constant'
6653 */
6654 L4_MABX_B.Compare_ih = (L4_MABX_B.DataTypeConversion3_l ==
6655 L4_MABX_P.CompareToConstant_const_e);
6656
6657 /* RelationalOperator: '<S208>/Compare' incorporates:
6658 * Constant: '<S208>/Constant'
6659 */
6660 L4_MABX_B.Compare_ex = (L4_MABX_B.DataTypeConversion3_l ==
6661 L4_MABX_P.CompareToConstant1_const_j);
6662
6663 /* Logic: '<S203>/BrakingActive2' */
6664 L4_MABX_B.BrakingActive2 = (L4_MABX_B.Compare_ih || L4_MABX_B.Compare_ex);
6665
6666 /* Logic: '<S203>/BrakingActive1' */
6667 L4_MABX_B.f_brake_sw_off = (L4_MABX_B.LogicalOperator2_nt &&
6668 L4_MABX_B.BrakingActive2);
6669
6670 /* RelationalOperator: '<S210>/Compare' incorporates:
6671 * Constant: '<S210>/Constant'
6672 */
6673 L4_MABX_B.Compare_ay = (L4_MABX_B.SPN524_TransSelectedGear >
6674 L4_MABX_P.Constant_Value_il);
6675
6676 /* RelationalOperator: '<S211>/Compare' incorporates:
6677 * Constant: '<S211>/Constant'
6678 */
6679 L4_MABX_B.Compare_oso = (L4_MABX_B.SPN523_TransCurrentGear >
6680 L4_MABX_P.Constant_Value_f);
6681
6682 /* Logic: '<S203>/Logical Operator1' */
6683 L4_MABX_B.f_brk_gov_inactive = !L4_MABX_B.F_Brake_control_active;
6684
6685 /* Logic: '<S203>/Logical Operator' */
6686 L4_MABX_B.LogicalOperator_ke = (AutonomousEnabled && L4_MABX_B.f_brake_sw_off &&
6687 L4_MABX_B.Compare_ay && L4_MABX_B.Compare_oso &&
6688 L4_MABX_B.f_brk_gov_inactive);
6689
6690 /* Outputs for Enabled SubSystem: '<S79>/Throttle_controller_gov' incorporates:
6691 * EnablePort: '<S206>/Enable'
6692 */
6693 if (L4_MABX_B.LogicalOperator_ke) {
6694 if (!L4_MABX_DW.Throttle_controller_gov_MODE) {
6695 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay1' */
6696 L4_MABX_DW.Unit_Delay1_DSTATE_p1 =
6697 L4_MABX_P.Unit_Delay1_InitialCondition_o;
6698
6699 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay' */
6700 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_P.Unit_Delay_InitialCondition_b2;
6701
6702 /* InitializeConditions for UnitDelay: '<S241>/Unit_Delay' */
6703 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Unit_Delay_InitialCondition_lj;
6704
6705 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay1' */
6706 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Unit_Delay1_InitialCondition_a;
6707
6708 /* InitializeConditions for UnitDelay: '<S262>/Unit_Delay' */
6709 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Unit_Delay_InitialCondition_bm;
6710
6711 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay2' */
6712 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq =
6713 L4_MABX_P.FixPtUnitDelay2_InitialCondit_a;
6714
6715 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay1' */
6716 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a =
6717 L4_MABX_P.FixPtUnitDelay1_InitialCondit_o;
6718
6719 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay2' */
6720 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_P.Unit_Delay2_InitialCondition_j;
6721
6722 /* InitializeConditions for UnitDelay: '<S216>/Unit_Delay' */
6723 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_P.Unit_Delay_InitialCondition_kg;
6724 L4_MABX_DW.Throttle_controller_gov_MODE = true;
6725 }
6726
6727 /* DataTypeConversion: '<S213>/Data Type Conversion9' */
6728 L4_MABX_B.DataTypeConversion9_h = L4_MABX_B.SFunction1_o4_kr;
6729
6730 /* DataTypeConversion: '<S213>/Data Type Conversion1' */
6731 L4_MABX_B.DataTypeConversion1_iq = L4_MABX_B.SFunction1_o2_mk;
6732
6733 /* Sum: '<S213>/Add' */
6734 L4_MABX_B.Add_di = L4_MABX_B.DataTypeConversion9_h +
6735 L4_MABX_B.DataTypeConversion1_iq;
6736
6737 /* RelationalOperator: '<S218>/Relational Operator1' incorporates:
6738 * Constant: '<S213>/Constant1'
6739 */
6740 L4_MABX_B.RelationalOperator1_ng = (L4_MABX_B.Add_di >=
6741 L4_MABX_P.Constant1_Value_c);
6742
6743 /* RelationalOperator: '<S218>/Relational Operator' incorporates:
6744 * Constant: '<S213>/Constant3'
6745 */
6746 L4_MABX_B.RelationalOperator_d3 = (L4_MABX_B.Add_di <=
6747 L4_MABX_P.Constant3_Value_d);
6748
6749 /* Outputs for Atomic SubSystem: '<S218>/If_Then_Else1' */
6750
6751 /* Constant: '<S213>/Constant3' */
6752 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_d3,
6753 L4_MABX_P.Constant3_Value_d, L4_MABX_B.Add_di,
6754 &L4_MABX_B.If_Then_Else1_hx);
6755
6756 /* End of Outputs for SubSystem: '<S218>/If_Then_Else1' */
6757
6758 /* Outputs for Atomic SubSystem: '<S218>/If_Then_Else' */
6759
6760 /* Constant: '<S213>/Constant1' */
6761 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ng,
6762 L4_MABX_P.Constant1_Value_c,
6763 L4_MABX_B.If_Then_Else1_hx.Switch,
6764 &L4_MABX_B.If_Then_Else_ct);
6765
6766 /* End of Outputs for SubSystem: '<S218>/If_Then_Else' */
6767
6768 /* DataTypeConversion: '<S213>/Data Type Conversion2' */
6769 L4_MABX_B.DataTypeConversion2_i = L4_MABX_B.SPN514_NominalFrictionPercentTo;
6770
6771 /* RelationalOperator: '<S219>/Relational Operator1' incorporates:
6772 * Constant: '<S213>/Constant2'
6773 */
6774 L4_MABX_B.RelationalOperator1_ch = (L4_MABX_B.DataTypeConversion2_i >=
6775 L4_MABX_P.Constant2_Value_b);
6776
6777 /* RelationalOperator: '<S219>/Relational Operator' incorporates:
6778 * Constant: '<S213>/Constant4'
6779 */
6780 L4_MABX_B.RelationalOperator_j1 = (L4_MABX_B.DataTypeConversion2_i <=
6781 L4_MABX_P.Constant4_Value);
6782
6783 /* Outputs for Atomic SubSystem: '<S219>/If_Then_Else1' */
6784
6785 /* Constant: '<S213>/Constant4' */
6786 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_j1,
6787 L4_MABX_P.Constant4_Value,
6788 L4_MABX_B.DataTypeConversion2_i,
6789 &L4_MABX_B.If_Then_Else1_kg);
6790
6791 /* End of Outputs for SubSystem: '<S219>/If_Then_Else1' */
6792
6793 /* Outputs for Atomic SubSystem: '<S219>/If_Then_Else' */
6794
6795 /* Constant: '<S213>/Constant2' */
6796 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ch,
6797 L4_MABX_P.Constant2_Value_b,
6798 L4_MABX_B.If_Then_Else1_kg.Switch,
6799 &L4_MABX_B.If_Then_Else_bo);
6800
6801 /* End of Outputs for SubSystem: '<S219>/If_Then_Else' */
6802
6803 /* DataTypeConversion: '<S213>/Data Type Conversion3' */
6804 L4_MABX_B.DataTypeConversion3_he = L4_MABX_B.SPN2978_EstEngParasiticLossesPe;
6805
6806 /* RelationalOperator: '<S220>/Relational Operator1' incorporates:
6807 * Constant: '<S213>/Constant5'
6808 */
6809 L4_MABX_B.RelationalOperator1_l = (L4_MABX_B.DataTypeConversion3_he >=
6810 L4_MABX_P.Constant5_Value);
6811
6812 /* RelationalOperator: '<S220>/Relational Operator' incorporates:
6813 * Constant: '<S213>/Constant6'
6814 */
6815 L4_MABX_B.RelationalOperator_fd = (L4_MABX_B.DataTypeConversion3_he <=
6816 L4_MABX_P.Constant6_Value);
6817
6818 /* Outputs for Atomic SubSystem: '<S220>/If_Then_Else1' */
6819
6820 /* Constant: '<S213>/Constant6' */
6821 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_fd,
6822 L4_MABX_P.Constant6_Value,
6823 L4_MABX_B.DataTypeConversion3_he,
6824 &L4_MABX_B.If_Then_Else1_dz);
6825
6826 /* End of Outputs for SubSystem: '<S220>/If_Then_Else1' */
6827
6828 /* Outputs for Atomic SubSystem: '<S220>/If_Then_Else' */
6829
6830 /* Constant: '<S213>/Constant5' */
6831 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_l,
6832 L4_MABX_P.Constant5_Value,
6833 L4_MABX_B.If_Then_Else1_dz.Switch,
6834 &L4_MABX_B.If_Then_Else_br);
6835
6836 /* End of Outputs for SubSystem: '<S220>/If_Then_Else' */
6837
6838 /* DataTypeConversion: '<S217>/Data Type Conversion5' */
6839 L4_MABX_B.DataTypeConversion5_i = L4_MABX_B.SFunction1_o1_fb;
6840
6841 /* Lookup_n-D: '<S224>/1-D Lookup Table' */
6842 L4_MABX_B.Coeff_of_drag_Cd = look1_binlcapw(L4_MABX_B.DataTypeConversion5_i,
6843 L4_MABX_P.uDLookupTable_bp01Data, L4_MABX_P.uDLookupTable_tableData, 2U);
6844
6845 /* Gain: '<S224>/KPH_TO_M//S' */
6846 L4_MABX_B.KPH_TO_MS = L4_MABX_P.KPH_TO_MS_Gain *
6847 L4_MABX_B.DataTypeConversion5_i;
6848
6849 /* Math: '<S224>/Math Function'
6850 *
6851 * About '<S224>/Math Function':
6852 * Operator: magnitude^2
6853 */
6854 PositionFinalLimited = L4_MABX_B.KPH_TO_MS;
6855 L4_MABX_B.MathFunction = PositionFinalLimited * PositionFinalLimited;
6856
6857 /* DataTypeConversion: '<S217>/Data Type Conversion' */
6858 L4_MABX_B.DataTypeConversion_ik = L4_MABX_B.SFunction1_o1_lz;
6859
6860 /* Gain: '<S224>/KPA_TO_PA' */
6861 L4_MABX_B.KPA_TO_PA = L4_MABX_P.KPA_TO_PA_Gain *
6862 L4_MABX_B.DataTypeConversion_ik;
6863
6864 /* DataTypeConversion: '<S217>/Data Type Conversion4' */
6865 L4_MABX_B.DataTypeConversion4_b = L4_MABX_B.SFunction1_o3_awg;
6866
6867 /* Sum: '<S224>/Add' incorporates:
6868 * Constant: '<S224>/Constant'
6869 */
6870 L4_MABX_B.Add_o = L4_MABX_B.DataTypeConversion4_b + L4_MABX_P.Constant_Value;
6871
6872 /* Product: '<S224>/Product' incorporates:
6873 * Constant: '<S224>/Constant1'
6874 */
6875 L4_MABX_B.Product_nm = L4_MABX_B.Add_o * L4_MABX_P.Constant1_Value_p;
6876
6877 /* Product: '<S224>/Divide' */
6878 L4_MABX_B.Air_density_kgm3 = L4_MABX_B.KPA_TO_PA / L4_MABX_B.Product_nm;
6879
6880 /* Product: '<S224>/Product1' incorporates:
6881 * Constant: '<S217>/Veh_Frontal_Area_m^2'
6882 * Constant: '<S224>/Constant2'
6883 */
6884 L4_MABX_B.Aerodynamic_resistance_Ra = L4_MABX_B.Coeff_of_drag_Cd *
6885 L4_MABX_P.Veh_Frontal_Area_m2_Value * L4_MABX_B.MathFunction *
6886 L4_MABX_B.Air_density_kgm3 * L4_MABX_P.Constant2_Value_h;
6887
6888 /* DataTypeConversion: '<S217>/Data Type Conversion6' */
6889 L4_MABX_B.DataTypeConversion6_f = L4_MABX_B.PitchAngleExRange;
6890
6891 /* Product: '<S225>/Divide' incorporates:
6892 * Constant: '<S225>/Constant2'
6893 * Constant: '<S225>/Constant3'
6894 */
6895 L4_MABX_B.grade_angle_radians = L4_MABX_B.DataTypeConversion6_f *
6896 L4_MABX_P.Constant2_Value_bc / L4_MABX_P.Constant3_Value_n;
6897
6898 /* Trigonometry: '<S225>/Trigonometric Function' */
6899 L4_MABX_B.TrigonometricFunction_a = sin(L4_MABX_B.grade_angle_radians);
6900
6901 /* Product: '<S225>/Product1' incorporates:
6902 * Constant: '<S225>/Constant1'
6903 */
6904 L4_MABX_B.Gradient_resistance_Rg = L4_MABX_B.SPN1760_GrossCombinationVehicle
6905 * L4_MABX_B.TrigonometricFunction_a * L4_MABX_P.Constant1_Value_a;
6906
6907 /* Gain: '<S228>/KPA_TO_M//S' */
6908 L4_MABX_B.KPA_TO_MS = L4_MABX_P.KPA_TO_MS_Gain *
6909 L4_MABX_B.DataTypeConversion5_i;
6910
6911 /* Product: '<S228>/Divide2' incorporates:
6912 * Constant: '<S228>/Constant2'
6913 * Constant: '<S228>/Constant6'
6914 */
6915 L4_MABX_B.Divide2_c = L4_MABX_P.Constant2_Value_bq * L4_MABX_B.KPA_TO_MS /
6916 L4_MABX_P.Constant6_Value_g;
6917
6918 /* Math: '<S228>/Math Function'
6919 *
6920 * About '<S228>/Math Function':
6921 * Operator: magnitude^2
6922 */
6923 PositionFinalLimited = L4_MABX_B.Divide2_c;
6924 L4_MABX_B.MathFunction_l = PositionFinalLimited * PositionFinalLimited;
6925
6926 /* Sum: '<S228>/Add' incorporates:
6927 * Constant: '<S228>/Constant1'
6928 */
6929 L4_MABX_B.Add_nj = L4_MABX_P.Constant1_Value_m + L4_MABX_B.MathFunction_l;
6930
6931 /* Outputs for Atomic SubSystem: '<S222>/If_Then_Else' */
6932
6933 /* Constant: '<S217>/TIRE1_tire_pressure' incorporates:
6934 * Constant: '<S222>/Truck166_tire_pressure'
6935 */
6936 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_h,
6937 L4_MABX_P.TIRE1_tire_pressure_Value,
6938 L4_MABX_P.Truck166_tire_pressure_Value,
6939 &L4_MABX_B.If_Then_Else_nr);
6940
6941 /* End of Outputs for SubSystem: '<S222>/If_Then_Else' */
6942
6943 /* Gain: '<S228>/KPA_TO_BAR' */
6944 L4_MABX_B.KPA_TO_BAR = L4_MABX_P.KPA_TO_BAR_Gain *
6945 L4_MABX_B.If_Then_Else_nr.Switch;
6946
6947 /* Product: '<S228>/Divide' */
6948 L4_MABX_B.Divide_k = L4_MABX_B.Add_nj / L4_MABX_B.KPA_TO_BAR;
6949
6950 /* Sum: '<S228>/Add1' incorporates:
6951 * Constant: '<S228>/Constant'
6952 */
6953 L4_MABX_B.Coeff_of_rolling_resistance_Cr = L4_MABX_P.Constant_Value_h +
6954 L4_MABX_B.Divide_k;
6955
6956 /* Product: '<S226>/Divide1' incorporates:
6957 * Constant: '<S226>/Constant4'
6958 * Constant: '<S226>/Constant5'
6959 */
6960 L4_MABX_B.grade_angle_radians_a = L4_MABX_B.DataTypeConversion6_f *
6961 L4_MABX_P.Constant4_Value_o / L4_MABX_P.Constant5_Value_p;
6962
6963 /* Trigonometry: '<S226>/Trigonometric Function' */
6964 L4_MABX_B.TrigonometricFunction_e = cos(L4_MABX_B.grade_angle_radians_a);
6965
6966 /* Product: '<S226>/Product2' incorporates:
6967 * Constant: '<S226>/Constant3'
6968 */
6969 L4_MABX_B.Rolling_resistance_Rr = L4_MABX_B.Coeff_of_rolling_resistance_Cr *
6970 L4_MABX_B.SPN1760_GrossCombinationVehicle *
6971 L4_MABX_B.TrigonometricFunction_e * L4_MABX_P.Constant3_Value_p;
6972
6973 /* Sum: '<S222>/Add' incorporates:
6974 * Constant: '<S222>/Constant'
6975 */
6976 L4_MABX_B.TotalTractiveForce_N = ((L4_MABX_B.Aerodynamic_resistance_Ra +
6977 L4_MABX_B.Gradient_resistance_Rg) + L4_MABX_B.Rolling_resistance_Rr) +
6978 L4_MABX_P.Constant_Value_g;
6979
6980 /* Saturate: '<S217>/Saturation' */
6981 DeltaTime = L4_MABX_B.SPN526_TransActualGearRatio;
6982 Time56 = L4_MABX_P.Saturation_LowerSat_p;
6983 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_n;
6984 if (DeltaTime > PositionFinalLimited) {
6985 L4_MABX_B.Saturation_g = PositionFinalLimited;
6986 } else if (DeltaTime < Time56) {
6987 L4_MABX_B.Saturation_g = Time56;
6988 } else {
6989 L4_MABX_B.Saturation_g = DeltaTime;
6990 }
6991
6992 /* End of Saturate: '<S217>/Saturation' */
6993
6994 /* MATLAB Function: '<S217>/F_wheel_to_Tq_eng' incorporates:
6995 * Constant: '<S217>/N_rar'
6996 * Constant: '<S217>/R_wheel_m'
6997 * Constant: '<S217>/eta'
6998 */
6999 /* MATLAB Function 'STATE_CONTROL_10ms/Throttle_controller_gov/Determine_engine_torque_and_losses/CalculateRoadLoadTorque/F_wheel_to_Tq_eng': '<S223>:1' */
7000 /* '<S223>:1:3' */
7001 L4_MABX_B.road_load_tq = L4_MABX_B.TotalTractiveForce_N *
7002 L4_MABX_P.R_wheel_m_Value / L4_MABX_P.N_rar_Value / L4_MABX_B.Saturation_g
7003 / L4_MABX_P.eta_Value;
7004
7005 /* DataTypeConversion: '<S217>/Data Type Conversion1' */
7006 L4_MABX_B.DataTypeConversion1_b = L4_MABX_B.SPN544_EngineReferenceTorque;
7007
7008 /* Product: '<S217>/Divide' */
7009 L4_MABX_B.RoadLoadTorque_fract = L4_MABX_B.road_load_tq /
7010 L4_MABX_B.DataTypeConversion1_b;
7011
7012 /* Gain: '<S217>/Gain' */
7013 L4_MABX_B.RoadLoadTorque_pct = L4_MABX_P.Gain_Gain_n *
7014 L4_MABX_B.RoadLoadTorque_fract;
7015
7016 /* Outputs for Atomic SubSystem: '<S213>/If_Then_Else' */
7017
7018 /* Constant: '<S213>/UseFeedForwardRoadLoad' incorporates:
7019 * Constant: '<S213>/ZeroRoadLoadCPV'
7020 */
7021 L4_MABX_If_Then_Else(L4_MABX_P.UseFeedForwardRoadLoad_Value,
7022 L4_MABX_B.RoadLoadTorque_pct,
7023 L4_MABX_P.ZeroRoadLoadCPV_Value,
7024 &L4_MABX_B.If_Then_Else_a);
7025
7026 /* End of Outputs for SubSystem: '<S213>/If_Then_Else' */
7027
7028 /* Sum: '<S213>/Add1' */
7029 L4_MABX_B.FeedForwardTorque_pct = (L4_MABX_B.If_Then_Else_bo.Switch +
7030 L4_MABX_B.If_Then_Else_br.Switch) + L4_MABX_B.If_Then_Else_a.Switch;
7031
7032 /* UnitDelay: '<S214>/Unit_Delay1' */
7033 L4_MABX_B.Unit_Delay1_m = L4_MABX_DW.Unit_Delay1_DSTATE_p1;
7034
7035 /* Logic: '<S214>/Logical Operator' incorporates:
7036 * Constant: '<S214>/Constant1'
7037 */
7038 L4_MABX_B.f_gpid_reset = (L4_MABX_P.Constant1_Value_g1 ||
7039 L4_MABX_B.Unit_Delay1_m);
7040
7041 /* Sum: '<S214>/Subtract' */
7042 L4_MABX_B.Subtract_f = L4_MABX_B.VSPD_TARGET_KPH_APV_g -
7043 L4_MABX_B.VSPD_HYST_KPH_APV_f;
7044
7045 /* RelationalOperator: '<S214>/Relational Operator' */
7046 L4_MABX_B.RelationalOperator_fl = (L4_MABX_B.DataTypeConversion4_ib >
7047 L4_MABX_B.Subtract_f);
7048
7049 /* UnitDelay: '<S214>/Unit_Delay' */
7050 L4_MABX_B.Unit_Delay_d5 = L4_MABX_DW.Unit_Delay_DSTATE_lq;
7051
7052 /* RelationalOperator: '<S214>/Relational Operator1' */
7053 L4_MABX_B.RelationalOperator1_d3 = (L4_MABX_B.RelationalOperator_fl !=
7054 L4_MABX_B.Unit_Delay_d5);
7055
7056 /* Lookup_n-D: '<S235>/2D_Lookup_Table' */
7057 L4_MABX_B.uD_Lookup_Table_am = look2_binlcapw
7058 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7059 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7060 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KP_DATA_MPV,
7061 L4_MABX_P.uD_Lookup_Table_maxIndex, 8U);
7062
7063 /* Lookup_n-D: '<S236>/2D_Lookup_Table' */
7064 L4_MABX_B.uD_Lookup_Table_o = look2_binlcapw
7065 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7066 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7067 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KI_DATA_MPV,
7068 L4_MABX_P.uD_Lookup_Table_maxIndex_p, 8U);
7069
7070 /* Lookup_n-D: '<S237>/2D_Lookup_Table' */
7071 L4_MABX_B.uD_Lookup_Table_h = look2_binlcapw
7072 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7073 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7074 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KD_DATA_MPV,
7075 L4_MABX_P.uD_Lookup_Table_maxIndex_a, 8U);
7076
7077 /* Abs: '<S238>/Abs' */
7078 L4_MABX_B.Abs_igm = fabs(L4_MABX_B.uD_Lookup_Table_o);
7079
7080 /* Abs: '<S238>/Abs1' */
7081 L4_MABX_B.Abs1_a = fabs(L4_MABX_B.uD_Lookup_Table_h);
7082
7083 /* UnitDelay: '<S241>/Unit_Delay' */
7084 L4_MABX_B.Unit_Delay_i0 = L4_MABX_DW.Unit_Delay_DSTATE_be;
7085
7086 /* Logic: '<S241>/Logical Operator1' */
7087 L4_MABX_B.LogicalOperator1_o = (L4_MABX_B.Unit_Delay_i0 ||
7088 L4_MABX_B.f_gpid_reset);
7089
7090 /* UnitDelay: '<S261>/Unit_Delay1' */
7091 L4_MABX_B.Unit_Delay1_dw = L4_MABX_DW.Unit_Delay1_DSTATE_h;
7092
7093 /* Logic: '<S261>/Logical Operator' */
7094 L4_MABX_B.LogicalOperator_at = (L4_MABX_B.LogicalOperator1_o ||
7095 L4_MABX_B.Unit_Delay1_dw);
7096
7097 /* UnitDelay: '<S262>/Unit_Delay' */
7098 L4_MABX_B.Unit_Delay_ne = L4_MABX_DW.Unit_Delay_DSTATE_fi;
7099
7100 /* Logic: '<S262>/Logical Operator1' */
7101 L4_MABX_B.LogicalOperator1_k = (L4_MABX_B.LogicalOperator1_o ||
7102 L4_MABX_B.Unit_Delay_ne);
7103
7104 /* UnitDelay: '<S266>/FixPt Unit Delay2' */
7105 L4_MABX_B.FixPtUnitDelay2_at = L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq;
7106
7107 /* UnitDelay: '<S266>/FixPt Unit Delay1' */
7108 L4_MABX_B.Xold_a = L4_MABX_DW.FixPtUnitDelay1_DSTATE_a;
7109
7110 /* Switch: '<S266>/Init' */
7111 if (L4_MABX_B.FixPtUnitDelay2_at != 0) {
7112 L4_MABX_B.Init_pu = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
7113 } else {
7114 L4_MABX_B.Init_pu = L4_MABX_B.Xold_a;
7115 }
7116
7117 /* End of Switch: '<S266>/Init' */
7118
7119 /* Abs: '<S262>/Abs' incorporates:
7120 * Constant: '<S206>/TqDemSlewInc'
7121 */
7122 L4_MABX_B.Abs_n = fabs(L4_MABX_P.TqDemSlewInc_Value);
7123
7124 /* Product: '<S262>/Product1' incorporates:
7125 * Constant: '<S206>/TqDemDt'
7126 */
7127 L4_MABX_B.Product1_g = L4_MABX_B.Abs_n * L4_MABX_P.TqDemDt_Value;
7128
7129 /* Sum: '<S262>/Add1' */
7130 L4_MABX_B.Add1_g = L4_MABX_B.Init_pu + L4_MABX_B.Product1_g;
7131
7132 /* MinMax: '<S262>/MinMax2' */
7133 DeltaTime = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
7134 PositionFinalLimited = L4_MABX_B.Add1_g;
7135 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7136 PositionFinalLimited = DeltaTime;
7137 }
7138
7139 L4_MABX_B.MinMax2_n = PositionFinalLimited;
7140
7141 /* End of MinMax: '<S262>/MinMax2' */
7142
7143 /* Abs: '<S262>/Abs1' incorporates:
7144 * Constant: '<S206>/TqDemSlewDec'
7145 */
7146 L4_MABX_B.Abs1_d = fabs(L4_MABX_P.TqDemSlewDec_Value);
7147
7148 /* Product: '<S262>/Product2' incorporates:
7149 * Constant: '<S206>/TqDemDt'
7150 */
7151 L4_MABX_B.Product2_bn = L4_MABX_P.TqDemDt_Value * L4_MABX_B.Abs1_d;
7152
7153 /* Sum: '<S262>/Subtract1' */
7154 L4_MABX_B.Subtract1_o = L4_MABX_B.Init_pu - L4_MABX_B.Product2_bn;
7155
7156 /* MinMax: '<S262>/MinMax1' */
7157 DeltaTime = L4_MABX_B.MinMax2_n;
7158 PositionFinalLimited = L4_MABX_B.Subtract1_o;
7159 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7160 PositionFinalLimited = DeltaTime;
7161 }
7162
7163 L4_MABX_B.MinMax1_g = PositionFinalLimited;
7164
7165 /* End of MinMax: '<S262>/MinMax1' */
7166
7167 /* Outputs for Atomic SubSystem: '<S262>/If_Then_Else' */
7168 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_k,
7169 L4_MABX_B.DataTypeConversion4_ib, L4_MABX_B.MinMax1_g,
7170 &L4_MABX_B.If_Then_Else_cp);
7171
7172 /* End of Outputs for SubSystem: '<S262>/If_Then_Else' */
7173
7174 /* Sum: '<S239>/Subtract' */
7175 L4_MABX_B.Subtract_jb = L4_MABX_B.If_Then_Else_cp.Switch -
7176 L4_MABX_B.DataTypeConversion4_ib;
7177
7178 /* MinMax: '<S261>/MinMax1' incorporates:
7179 * Constant: '<S206>/TqDemDt'
7180 * Constant: '<S206>/TqDemTFildCtrlErrorSecs'
7181 */
7182 DeltaTime = L4_MABX_P.TqDemDt_Value;
7183 PositionFinalLimited = L4_MABX_P.TqDemTFildCtrlErrorSecs_Value;
7184 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7185 PositionFinalLimited = DeltaTime;
7186 }
7187
7188 L4_MABX_B.MinMax1_d = PositionFinalLimited;
7189
7190 /* End of MinMax: '<S261>/MinMax1' */
7191
7192 /* Saturate: '<S261>/Saturation' */
7193 DeltaTime = L4_MABX_B.MinMax1_d;
7194 Time56 = L4_MABX_P.Saturation_LowerSat_g5;
7195 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_f;
7196 if (DeltaTime > PositionFinalLimited) {
7197 L4_MABX_B.Saturation_d = PositionFinalLimited;
7198 } else if (DeltaTime < Time56) {
7199 L4_MABX_B.Saturation_d = Time56;
7200 } else {
7201 L4_MABX_B.Saturation_d = DeltaTime;
7202 }
7203
7204 /* End of Saturate: '<S261>/Saturation' */
7205
7206 /* Product: '<S261>/Divide' incorporates:
7207 * Constant: '<S206>/TqDemDt'
7208 */
7209 L4_MABX_B.Divide_n = L4_MABX_P.TqDemDt_Value / L4_MABX_B.Saturation_d;
7210
7211 /* Product: '<S261>/Product2' */
7212 L4_MABX_B.Product2_lv = L4_MABX_B.Subtract_jb * L4_MABX_B.Divide_n;
7213
7214 /* Sum: '<S261>/Subtract1' incorporates:
7215 * Constant: '<S261>/Constant1'
7216 */
7217 L4_MABX_B.Subtract1_k = L4_MABX_P.Constant1_Value_ci - L4_MABX_B.Divide_n;
7218
7219 /* UnitDelay: '<S261>/Unit_Delay2' */
7220 L4_MABX_B.Unit_Delay2_o = L4_MABX_DW.Unit_Delay2_DSTATE_m;
7221
7222 /* Product: '<S261>/Product1' */
7223 L4_MABX_B.Product1_p = L4_MABX_B.Subtract1_k * L4_MABX_B.Unit_Delay2_o;
7224
7225 /* Sum: '<S261>/Add1' */
7226 L4_MABX_B.Add1_i = L4_MABX_B.Product2_lv + L4_MABX_B.Product1_p;
7227
7228 /* Outputs for Atomic SubSystem: '<S261>/If_Then_Else' */
7229 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_at, L4_MABX_B.Subtract_jb,
7230 L4_MABX_B.Add1_i, &L4_MABX_B.If_Then_Else_k2);
7231
7232 /* End of Outputs for SubSystem: '<S261>/If_Then_Else' */
7233
7234 /* RelationalOperator: '<S246>/Compare' incorporates:
7235 * Constant: '<S246>/Constant'
7236 */
7237 L4_MABX_B.Compare_go = (L4_MABX_B.Abs1_a >
7238 L4_MABX_P.CompareToConstant1_const_i);
7239
7240 /* Outputs for Enabled SubSystem: '<S238>/Calculate_D_term' */
7241
7242 /* Constant: '<S206>/TqDemDt' incorporates:
7243 * Constant: '<S206>/TqDemTFildTSecs'
7244 */
7245 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_go, L4_MABX_B.uD_Lookup_Table_h,
7246 L4_MABX_P.TqDemDt_Value, L4_MABX_B.LogicalOperator1_o,
7247 L4_MABX_B.If_Then_Else_k2.Switch, L4_MABX_P.TqDemTFildTSecs_Value,
7248 &L4_MABX_B.Calculate_D_term_h, &L4_MABX_DW.Calculate_D_term_h,
7249 &L4_MABX_P.Calculate_D_term_h);
7250
7251 /* End of Outputs for SubSystem: '<S238>/Calculate_D_term' */
7252
7253 /* Product: '<S244>/Product' */
7254 L4_MABX_B.Product_i = L4_MABX_B.uD_Lookup_Table_am *
7255 L4_MABX_B.If_Then_Else_k2.Switch;
7256
7257 /* RelationalOperator: '<S206>/Relational Operator' */
7258 L4_MABX_B.RelationalOperator_a = (L4_MABX_B.SPN524_TransSelectedGear !=
7259 L4_MABX_B.SPN523_TransCurrentGear);
7260
7261 /* UnitDelay: '<S216>/Unit_Delay' */
7262 L4_MABX_B.Unit_Delay_m = L4_MABX_DW.Unit_Delay_DSTATE_fz;
7263
7264 /* RelationalOperator: '<S245>/Compare' incorporates:
7265 * Constant: '<S245>/Constant'
7266 */
7267 L4_MABX_B.Compare_pj = (L4_MABX_B.Abs_igm >
7268 L4_MABX_P.CompareToConstant_const_d);
7269
7270 /* Outputs for Enabled SubSystem: '<S238>/Calculate_I_term' */
7271
7272 /* Constant: '<S206>/TqDemDt' incorporates:
7273 * Constant: '<S206>/GpidAwCondIntegration'
7274 * Constant: '<S206>/TqDemAwHyst'
7275 */
7276 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_pj, L4_MABX_B.Product_i,
7277 L4_MABX_B.uD_Lookup_Table_o, L4_MABX_B.If_Then_Else_ct.Switch,
7278 L4_MABX_B.If_Then_Else_k2.Switch, L4_MABX_B.LogicalOperator1_o,
7279 L4_MABX_P.TqDemDt_Value, L4_MABX_B.FeedForwardTorque_pct,
7280 L4_MABX_P.GpidAwCondIntegration_Value, L4_MABX_P.TqDemAwHyst_Value,
7281 L4_MABX_B.RelationalOperator_a, L4_MABX_B.Unit_Delay_m,
7282 &L4_MABX_B.Calculate_I_term_n, &L4_MABX_DW.Calculate_I_term_n,
7283 &L4_MABX_P.Calculate_I_term_n);
7284
7285 /* End of Outputs for SubSystem: '<S238>/Calculate_I_term' */
7286
7287 /* RelationalOperator: '<S264>/min_relop' incorporates:
7288 * Constant: '<S206>/TqDemSlewInc'
7289 * Constant: '<S264>/min_val'
7290 */
7291 L4_MABX_B.min_relop_cbm = (L4_MABX_P.CheckStaticLowerBound_min_b <=
7292 L4_MABX_P.TqDemSlewInc_Value);
7293
7294 /* Assertion: '<S264>/Assertion' */
7295 utAssert(L4_MABX_B.min_relop_cbm);
7296
7297 /* Sum: '<S240>/Add' */
7298 L4_MABX_B.Add_ds = ((L4_MABX_B.Product_i +
7299 L4_MABX_B.Calculate_I_term_n.If_Then_Else.Switch) +
7300 L4_MABX_B.Calculate_D_term_h.Subtract) +
7301 L4_MABX_B.FeedForwardTorque_pct;
7302
7303 /* RelationalOperator: '<S267>/Relational Operator1' incorporates:
7304 * Constant: '<S206>/TqDemLimMax'
7305 */
7306 L4_MABX_B.RelationalOperator1_j = (L4_MABX_B.Add_ds >=
7307 L4_MABX_P.TqDemLimMax_Value);
7308
7309 /* RelationalOperator: '<S267>/Relational Operator' incorporates:
7310 * Constant: '<S206>/TqDemLimMin'
7311 */
7312 L4_MABX_B.RelationalOperator_p = (L4_MABX_B.Add_ds <=
7313 L4_MABX_P.TqDemLimMin_Value);
7314
7315 /* Outputs for Atomic SubSystem: '<S267>/If_Then_Else1' */
7316
7317 /* Constant: '<S206>/TqDemLimMin' */
7318 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_p,
7319 L4_MABX_P.TqDemLimMin_Value, L4_MABX_B.Add_ds,
7320 &L4_MABX_B.If_Then_Else1_h3);
7321
7322 /* End of Outputs for SubSystem: '<S267>/If_Then_Else1' */
7323
7324 /* Outputs for Atomic SubSystem: '<S267>/If_Then_Else' */
7325
7326 /* Constant: '<S206>/TqDemLimMax' */
7327 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_j,
7328 L4_MABX_P.TqDemLimMax_Value,
7329 L4_MABX_B.If_Then_Else1_h3.Switch,
7330 &L4_MABX_B.If_Then_Else_pi);
7331
7332 /* End of Outputs for SubSystem: '<S267>/If_Then_Else' */
7333
7334 /* SignalConversion: '<S206>/OutportBufferForPID_d_term' */
7335 L4_MABX_B.PID_d_term_c = L4_MABX_B.Calculate_D_term_h.Subtract;
7336
7337 /* SignalConversion: '<S206>/OutportBufferForPID_hold_i_term_f' */
7338 L4_MABX_B.PID_hold_i_term_f_b =
7339 L4_MABX_B.Calculate_I_term_n.LogicalOperator2;
7340
7341 /* SignalConversion: '<S206>/OutportBufferForPID_i_term' */
7342 L4_MABX_B.PID_i_term_c = L4_MABX_B.Calculate_I_term_n.If_Then_Else.Switch;
7343 } else {
7344 if (L4_MABX_DW.Throttle_controller_gov_MODE) {
7345 /* Disable for Enabled SubSystem: '<S238>/Calculate_D_term' */
7346 if (L4_MABX_DW.Calculate_D_term_h.Calculate_D_term_MODE) {
7347 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term_h,
7348 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
7349 }
7350
7351 /* End of Disable for SubSystem: '<S238>/Calculate_D_term' */
7352
7353 /* Disable for Enabled SubSystem: '<S238>/Calculate_I_term' */
7354 if (L4_MABX_DW.Calculate_I_term_n.Calculate_I_term_MODE) {
7355 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term_n,
7356 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
7357 }
7358
7359 /* End of Disable for SubSystem: '<S238>/Calculate_I_term' */
7360
7361 /* Disable for Outport: '<S206>/PID_output' */
7362 L4_MABX_B.If_Then_Else_pi.Switch = L4_MABX_P.PID_output_Y0_c;
7363
7364 /* Disable for Outport: '<S206>/PID_output_unlim' */
7365 L4_MABX_B.Add_ds = L4_MABX_P.PID_output_unlim_Y0;
7366
7367 /* Disable for Outport: '<S206>/PID_control_error' */
7368 L4_MABX_B.If_Then_Else_k2.Switch = L4_MABX_P.PID_control_error_Y0;
7369
7370 /* Disable for Outport: '<S206>/PID_p_term' */
7371 L4_MABX_B.Product_i = L4_MABX_P.PID_p_term_Y0;
7372
7373 /* Disable for Outport: '<S206>/PID_i_term' */
7374 L4_MABX_B.PID_i_term_c = L4_MABX_P.PID_i_term_Y0;
7375
7376 /* Disable for Outport: '<S206>/PID_d_term' */
7377 L4_MABX_B.PID_d_term_c = L4_MABX_P.PID_d_term_Y0;
7378
7379 /* Disable for Outport: '<S206>/PID_hold_i_term_f' */
7380 L4_MABX_B.PID_hold_i_term_f_b = L4_MABX_P.PID_hold_i_term_f_Y0;
7381 L4_MABX_DW.Throttle_controller_gov_MODE = false;
7382 }
7383 }
7384
7385 /* End of Outputs for SubSystem: '<S79>/Throttle_controller_gov' */
7386
7387 /* Switch: '<S79>/Switch' incorporates:
7388 * Constant: '<S79>/Constant3'
7389 */
7390 if (L4_MABX_B.F_Brake_control_active) {
7391 L4_MABX_B.ThrottlePID_Y_m = L4_MABX_P.Constant3_Value;
7392 } else {
7393 /* DataTypeConversion: '<S79>/Data Type Conversion3' */
7394 L4_MABX_B.DataTypeConversion3_m = L4_MABX_B.SPN544_EngineReferenceTorque;
7395
7396 /* Product: '<S79>/Product' incorporates:
7397 * Constant: '<S79>/Constant2'
7398 */
7399 L4_MABX_B.ThrottlePID_Y_c = L4_MABX_B.If_Then_Else_pi.Switch *
7400 L4_MABX_B.DataTypeConversion3_m * L4_MABX_P.Constant2_Value;
7401 L4_MABX_B.ThrottlePID_Y_m = L4_MABX_B.ThrottlePID_Y_c;
7402 }
7403
7404 /* End of Switch: '<S79>/Switch' */
7405
7406 /* MultiPortSwitch: '<S83>/Multiport Switch' incorporates:
7407 * Constant: '<S83>/APTC_DISABLED_PEDAL_POSITION_APV'
7408 * Constant: '<S83>/APTC_PEDAL_POS_SIG_SOURCE_APV'
7409 */
7410 switch (L4_MABX_P.APTC_PEDAL_POS_SIG_SOURCE_APV_V) {
7411 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_DISABLED:
7412 L4_MABX_B.MultiportSwitch = L4_MABX_P.APTC_DISABLED_PEDAL_POSITION_AP;
7413 break;
7414
7415 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_CAN_EEC2_00:
7416 L4_MABX_B.MultiportSwitch = L4_MABX_B.uDLookupTable;
7417 break;
7418
7419 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_SW_EMULATION:
7420 L4_MABX_B.MultiportSwitch = L4_MABX_B.ThrottlePID_Y_m;
7421 break;
7422
7423 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_CAN_EEC2_00_AND_SW_EMULATION:
7424 /* MinMax: '<S83>/MinMax' */
7425 DeltaTime = L4_MABX_B.uDLookupTable;
7426 PositionFinalLimited = L4_MABX_B.ThrottlePID_Y_m;
7427 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7428 PositionFinalLimited = DeltaTime;
7429 }
7430
7431 L4_MABX_B.MinMax_p = PositionFinalLimited;
7432
7433 /* End of MinMax: '<S83>/MinMax' */
7434 L4_MABX_B.MultiportSwitch = L4_MABX_B.MinMax_p;
7435 break;
7436
7437 default:
7438 L4_MABX_B.MultiportSwitch = L4_MABX_P.APTC_DISABLED_PEDAL_POSITION_AP;
7439 break;
7440 }
7441
7442 /* End of MultiPortSwitch: '<S83>/Multiport Switch' */
7443
7444 /* Outputs for Atomic SubSystem: '<S83>/If_Then_Else1' */
7445 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_dy, L4_MABX_B.uDLookupTable,
7446 L4_MABX_B.MultiportSwitch, &L4_MABX_B.If_Then_Else1_lw);
7447
7448 /* End of Outputs for SubSystem: '<S83>/If_Then_Else1' */
7449
7450 /* DataTypeConversion: '<S82>/Data Type Conversion1' */
7451 L4_MABX_B.DataTypeConversion1_n3 = L4_MABX_B.SFunction1_o5_j3;
7452
7453 /* Lookup_n-D: '<S85>/2D_Lookup_Table' */
7454 L4_MABX_B.uD_Lookup_Table = look2_binlcapw(L4_MABX_B.If_Then_Else1_lw.Switch,
7455 L4_MABX_B.DataTypeConversion1_n3, APTC_TRQ_PED_INV_MAP_TRQ_STEPS,
7456 APTC_TRQ_PED_TRQ_ESPD_STEP_MPV, APTC_TRQ_PED_INV_MAP_PED_POS_MPV,
7457 L4_MABX_P.uD_Lookup_Table_maxIndex_h, 83U);
7458
7459 /* Logic: '<S82>/Logical Operator' */
7460 L4_MABX_B.LogicalOperator_j2 = !AutonomousEnabled;
7461
7462 /* Outputs for Atomic SubSystem: '<S82>/If_Then_Else' */
7463 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_j2, Pedal_pwm_position,
7464 L4_MABX_B.uD_Lookup_Table, &L4_MABX_B.If_Then_Else_f);
7465
7466 /* End of Outputs for SubSystem: '<S82>/If_Then_Else' */
7467
7468 /* RelationalOperator: '<S75>/Relational Operator' incorporates:
7469 * Constant: '<S75>/Constant'
7470 */
7471 L4_MABX_B.APTC_arb_pedal_low_idl_sw_o = (APTC_PEDAL_LOW_IDLE_SW_THR_APV >
7472 L4_MABX_B.If_Then_Else_f.Switch);
7473
7474 /* DataTypeConversion: '<S84>/Data Type Conversion1' */
7475 L4_MABX_B.DataTypeConversion1_av = L4_MABX_B.SPN544_EngineReferenceTorque;
7476
7477 /* RelationalOperator: '<S89>/Relational Operator1' incorporates:
7478 * Constant: '<S84>/EngRefTqLimHigh'
7479 */
7480 L4_MABX_B.RelationalOperator1_i = (L4_MABX_B.DataTypeConversion1_av >=
7481 L4_MABX_P.EngRefTqLimHigh_Value);
7482
7483 /* RelationalOperator: '<S89>/Relational Operator' incorporates:
7484 * Constant: '<S84>/EngRefTqLimLow'
7485 */
7486 L4_MABX_B.RelationalOperator_c = (L4_MABX_B.DataTypeConversion1_av <=
7487 L4_MABX_P.EngRefTqLimLow_Value);
7488
7489 /* Outputs for Atomic SubSystem: '<S89>/If_Then_Else1' */
7490
7491 /* Constant: '<S84>/EngRefTqLimLow' */
7492 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_c,
7493 L4_MABX_P.EngRefTqLimLow_Value,
7494 L4_MABX_B.DataTypeConversion1_av,
7495 &L4_MABX_B.If_Then_Else1_lo);
7496
7497 /* End of Outputs for SubSystem: '<S89>/If_Then_Else1' */
7498
7499 /* Outputs for Atomic SubSystem: '<S89>/If_Then_Else' */
7500
7501 /* Constant: '<S84>/EngRefTqLimHigh' */
7502 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_i,
7503 L4_MABX_P.EngRefTqLimHigh_Value,
7504 L4_MABX_B.If_Then_Else1_lo.Switch,
7505 &L4_MABX_B.If_Then_Else_ff);
7506
7507 /* End of Outputs for SubSystem: '<S89>/If_Then_Else' */
7508
7509 /* Sum: '<S84>/Subtract' incorporates:
7510 * Constant: '<S84>/FrictionTrqAtRefTrqSpeed'
7511 */
7512 L4_MABX_B.Subtract_j = L4_MABX_B.If_Then_Else_ff.Switch -
7513 L4_MABX_P.FrictionTrqAtRefTrqSpeed_Value;
7514
7515 /* Product: '<S84>/Divide' incorporates:
7516 * Constant: '<S84>/Constant1'
7517 */
7518 L4_MABX_B.Divide_hl = L4_MABX_B.If_Then_Else1_lw.Switch *
7519 L4_MABX_P.Constant1_Value_fg / L4_MABX_B.Subtract_j;
7520
7521 /* RelationalOperator: '<S90>/Relational Operator1' incorporates:
7522 * Constant: '<S84>/APPTqPercentMax'
7523 */
7524 L4_MABX_B.RelationalOperator1_a = (L4_MABX_B.Divide_hl >=
7525 L4_MABX_P.APPTqPercentMax_Value);
7526
7527 /* RelationalOperator: '<S90>/Relational Operator' incorporates:
7528 * Constant: '<S84>/APPTqPercentMin'
7529 */
7530 L4_MABX_B.RelationalOperator_n1 = (L4_MABX_B.Divide_hl <=
7531 L4_MABX_P.APPTqPercentMin_Value);
7532
7533 /* Outputs for Atomic SubSystem: '<S90>/If_Then_Else1' */
7534
7535 /* Constant: '<S84>/APPTqPercentMin' */
7536 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_n1,
7537 L4_MABX_P.APPTqPercentMin_Value, L4_MABX_B.Divide_hl,
7538 &L4_MABX_B.If_Then_Else1_p);
7539
7540 /* End of Outputs for SubSystem: '<S90>/If_Then_Else1' */
7541
7542 /* Outputs for Atomic SubSystem: '<S90>/If_Then_Else' */
7543
7544 /* Constant: '<S84>/APPTqPercentMax' */
7545 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_a,
7546 L4_MABX_P.APPTqPercentMax_Value,
7547 L4_MABX_B.If_Then_Else1_p.Switch,
7548 &L4_MABX_B.If_Then_Else_i);
7549
7550 /* End of Outputs for SubSystem: '<S90>/If_Then_Else' */
7551
7552 /* MultiPortSwitch: '<S76>/Autonomous Mode Switch' incorporates:
7553 * Constant: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
7554 * Constant: '<S76>/GhostMode'
7555 */
7556 if (AUTONOMOUS_MODE_SELECTOR_APV == ENUM_AUTONOMOUS_MODE_T_AUTO) {
7557 AutonomousOutputEnabled = AutonomousEnabled;
7558 } else {
7559 AutonomousOutputEnabled = (L4_MABX_P.GhostMode_Value != 0);
7560 }
7561
7562 /* End of MultiPortSwitch: '<S76>/Autonomous Mode Switch' */
7563
7564 /* Switch: '<S76>/Switch' incorporates:
7565 * Constant: '<S76>/Failure'
7566 * Constant: '<S76>/Running'
7567 */
7568 if (EStop) {
7569 tmp_1 = L4_MABX_P.Running_Value;
7570 if (tmp_1 < 0) {
7571 tmp_1 = 0;
7572 }
7573
7574 MABX_Mode = (uint8_T)tmp_1;
7575 } else {
7576 tmp_1 = L4_MABX_P.Failure_Value;
7577 if (tmp_1 < 0) {
7578 tmp_1 = 0;
7579 }
7580
7581 MABX_Mode = (uint8_T)tmp_1;
7582 }
7583
7584 /* End of Switch: '<S76>/Switch' */
7585
7586 /* DataTypeConversion: '<S98>/Data Type Conversion2' */
7587 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o8_o);
7588 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
7589 PositionFinalLimited = 0.0;
7590 } else {
7591 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
7592 }
7593
7594 L4_MABX_B.DataTypeConversion2_ew = (uint8_T)(PositionFinalLimited < 0.0 ?
7595 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
7596 (uint8_T)PositionFinalLimited);
7597
7598 /* End of DataTypeConversion: '<S98>/Data Type Conversion2' */
7599
7600 /* DataTypeConversion: '<S98>/Data Type Conversion' */
7601 L4_MABX_B.DataTypeConversion_lr = (ENUM_SWITCH_T)
7602 L4_MABX_B.DataTypeConversion2_ew;
7603
7604 /* DataTypeConversion: '<S98>/Data Type Conversion3' */
7605 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o4_edl);
7606 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
7607 PositionFinalLimited = 0.0;
7608 } else {
7609 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
7610 }
7611
7612 L4_MABX_B.DataTypeConversion3_ps = (uint8_T)(PositionFinalLimited < 0.0 ?
7613 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
7614 (uint8_T)PositionFinalLimited);
7615
7616 /* End of DataTypeConversion: '<S98>/Data Type Conversion3' */
7617
7618 /* DataTypeConversion: '<S98>/Data Type Conversion1' */
7619 L4_MABX_B.DataTypeConversion1_lu = (ENUM_SWITCH_T)
7620 L4_MABX_B.DataTypeConversion3_ps;
7621
7622 /* RelationalOperator: '<S98>/Relational Operator3' incorporates:
7623 * Constant: '<S98>/CPV3'
7624 */
7625 L4_MABX_B.RelationalOperator3_c[0] = (L4_MABX_B.DataTypeConversion_lr ==
7626 L4_MABX_P.CPV3_Value_p);
7627 L4_MABX_B.RelationalOperator3_c[1] = (L4_MABX_B.DataTypeConversion1_lu ==
7628 L4_MABX_P.CPV3_Value_p);
7629
7630 /* Logic: '<S98>/Logical Operator4' */
7631 L4_MABX_B.LogicalOperator4_o = (L4_MABX_B.RelationalOperator3_c[0] &&
7632 L4_MABX_B.RelationalOperator3_c[1]);
7633
7634 /* Gain: '<S98>/Gain4' */
7635 L4_MABX_B.Primary_brake_circuit_pressure_ = L4_MABX_P.Gain4_Gain *
7636 L4_MABX_B.PressureP42;
7637
7638 /* Gain: '<S98>/Gain5' */
7639 L4_MABX_B.Secondary_brake_circuit_pressur = L4_MABX_P.Gain5_Gain *
7640 L4_MABX_B.PressureP4;
7641
7642 /* RelationalOperator: '<S98>/Relational Operator4' incorporates:
7643 * Constant: '<S98>/BRAKE_APPL_THRESHOLD_KPA_APV'
7644 */
7645 L4_MABX_B.RelationalOperator4[0] = (L4_MABX_B.Primary_brake_circuit_pressure_ >
7646 L4_MABX_P.BRAKE_APPL_THRESHOLD_KPA_APV_Va);
7647 L4_MABX_B.RelationalOperator4[1] = (L4_MABX_B.Secondary_brake_circuit_pressur >
7648 L4_MABX_P.BRAKE_APPL_THRESHOLD_KPA_APV_Va);
7649
7650 /* Logic: '<S98>/Logical Operator3' */
7651 L4_MABX_B.F_Service_brake_pressure_applie = (L4_MABX_B.RelationalOperator4[0] ||
7652 L4_MABX_B.RelationalOperator4[1]);
7653
7654 /* RelationalOperator: '<S98>/Relational Operator6' incorporates:
7655 * Constant: '<S98>/CPV4'
7656 */
7657 L4_MABX_B.RelationalOperator6[0] = (L4_MABX_B.DataTypeConversion_lr ==
7658 L4_MABX_P.CPV4_Value_n);
7659 L4_MABX_B.RelationalOperator6[1] = (L4_MABX_B.DataTypeConversion1_lu ==
7660 L4_MABX_P.CPV4_Value_n);
7661
7662 /* Logic: '<S98>/Logical Operator' */
7663 L4_MABX_B.F_Brake_sw_CAN = (L4_MABX_B.RelationalOperator6[0] ||
7664 L4_MABX_B.RelationalOperator6[1]);
7665
7666 /* Logic: '<S98>/Logical Operator5' */
7667 L4_MABX_B.LogicalOperator5_n = (L4_MABX_B.F_Service_brake_pressure_applie ||
7668 L4_MABX_B.F_Brake_sw_CAN);
7669
7670 /* Outputs for Atomic SubSystem: '<S98>/If_Then_Else' */
7671 L4_MABX_If_Then_Else_l(L4_MABX_B.LogicalOperator4_o,
7672 L4_MABX_B.F_Service_brake_pressure_applie, L4_MABX_B.LogicalOperator5_n,
7673 &L4_MABX_B.If_Then_Else_la);
7674
7675 /* End of Outputs for SubSystem: '<S98>/If_Then_Else' */
7676
7677 /* RelationalOperator: '<S102>/Relational Operator1' incorporates:
7678 * Constant: '<S102>/SPN904_ZERO_SPD_CPV'
7679 */
7680 L4_MABX_B.F_Vehicle_stopped = (L4_MABX_B.DataTypeConversion5_oo <=
7681 L4_MABX_P.SPN904_ZERO_SPD_CPV_Value);
7682
7683 /* Sum: '<S99>/Add' */
7684 L4_MABX_B.Add_d = L4_MABX_B.Primary_brake_circuit_pressure_ +
7685 L4_MABX_B.Secondary_brake_circuit_pressur;
7686
7687 /* Gain: '<S99>/Gain' */
7688 L4_MABX_B.Gain_g = L4_MABX_P.Gain_Gain_g * L4_MABX_B.Add_d;
7689
7690 /* Outputs for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' incorporates:
7691 * EnablePort: '<S178>/Enable'
7692 */
7693 if (L4_MABX_DW.Determine_shift_interlock_brake) {
7694 /* Disable for Outport: '<S178>/Shift_interlock_brake_press_target_kpa' */
7695 L4_MABX_B.If_Then_Else_il.Switch = L4_MABX_P.Shift_interlock_brake_press_tar;
7696
7697 /* Disable for Outport: '<S178>/F_Shift_interlock_conditions_met' */
7698 L4_MABX_B.F_Shift_interlock_conditions_me =
7699 L4_MABX_P.F_Shift_interlock_conditions_me;
7700 L4_MABX_DW.Determine_shift_interlock_brake = false;
7701 }
7702
7703 /* End of Outputs for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
7704
7705 /* RelationalOperator: '<S200>/Compare' incorporates:
7706 * Constant: '<S200>/Constant'
7707 */
7708 L4_MABX_B.Compare_g4 = (L4_MABX_B.VSPD_TARGET_KPH_APV_g ==
7709 L4_MABX_P.Constant_Value_ol);
7710
7711 /* RelationalOperator: '<S103>/Relational Operator4' */
7712 L4_MABX_B.RelationalOperator4_l = (L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b >=
7713 L4_MABX_B.DataTypeConversion5_oo);
7714
7715 /* Logic: '<S103>/Logical Operator3' */
7716 L4_MABX_B.F_Hold_brakes_at_zero_d = (L4_MABX_B.F_Brake_control_active &&
7717 L4_MABX_B.Compare_g4 && L4_MABX_B.RelationalOperator4_l);
7718
7719 /* Outputs for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' incorporates:
7720 * EnablePort: '<S177>/Enable'
7721 */
7722 if (L4_MABX_B.F_Hold_brakes_at_zero_d) {
7723 if (!L4_MABX_DW.Determine_brake_hold_pressure_t) {
7724 /* InitializeConditions for UnitDelay: '<S177>/Unit_Delay' */
7725 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_P.Unit_Delay_InitialCondition_d;
7726
7727 /* InitializeConditions for UnitDelay: '<S181>/Unit_Delay' */
7728 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Unit_Delay_InitialCondition_fy;
7729
7730 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay2' */
7731 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je =
7732 L4_MABX_P.FixPtUnitDelay2_InitialCondit_e;
7733
7734 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay1' */
7735 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b =
7736 L4_MABX_P.FixPtUnitDelay1_InitialCondit_p;
7737
7738 /* InitializeConditions for UnitDelay: '<S182>/Unit_Delay' */
7739 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_P.Unit_Delay_InitialCondition_k;
7740 L4_MABX_DW.Determine_brake_hold_pressure_t = true;
7741 }
7742
7743 /* Logic: '<S177>/Logical Operator2' */
7744 L4_MABX_B.F_Brake_hold_conditions_met = (L4_MABX_B.If_Then_Else_la.Switch &&
7745 L4_MABX_B.F_Vehicle_stopped);
7746
7747 /* UnitDelay: '<S177>/Unit_Delay' */
7748 L4_MABX_B.Unit_Delay_a = L4_MABX_DW.Unit_Delay_DSTATE_c;
7749
7750 /* UnitDelay: '<S181>/Unit_Delay' */
7751 L4_MABX_B.Unit_Delay_h0 = L4_MABX_DW.Unit_Delay_DSTATE_or;
7752
7753 /* Logic: '<S181>/Logical Operator1' incorporates:
7754 * Constant: '<S177>/CPV1'
7755 */
7756 L4_MABX_B.LogicalOperator1_ou = (L4_MABX_P.CPV1_Value_p ||
7757 L4_MABX_B.Unit_Delay_h0);
7758
7759 /* Outputs for Atomic SubSystem: '<S177>/If_Then_Else1' */
7760
7761 /* Constant: '<S177>/CPV' */
7762 L4_MABX_If_Then_Else_g(L4_MABX_B.F_Brake_hold_conditions_met,
7763 L4_MABX_B.Unit_Delay_a, L4_MABX_P.CPV_Value_k, &L4_MABX_B.If_Then_Else1_mf);
7764
7765 /* End of Outputs for SubSystem: '<S177>/If_Then_Else1' */
7766
7767 /* UnitDelay: '<S185>/FixPt Unit Delay2' */
7768 L4_MABX_B.FixPtUnitDelay2_d = L4_MABX_DW.FixPtUnitDelay2_DSTATE_je;
7769
7770 /* UnitDelay: '<S185>/FixPt Unit Delay1' */
7771 L4_MABX_B.Xold_b = L4_MABX_DW.FixPtUnitDelay1_DSTATE_b;
7772
7773 /* Switch: '<S185>/Init' */
7774 if (L4_MABX_B.FixPtUnitDelay2_d != 0) {
7775 L4_MABX_B.Init_k = L4_MABX_B.If_Then_Else1_mf.Switch;
7776 } else {
7777 L4_MABX_B.Init_k = L4_MABX_B.Xold_b;
7778 }
7779
7780 /* End of Switch: '<S185>/Init' */
7781
7782 /* Abs: '<S181>/Abs' incorporates:
7783 * Constant: '<S177>/BRAKE_PRESS_TARGET_S LEW_INC_APV'
7784 */
7785 L4_MABX_B.Abs_b = fabs(L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_INC_APV);
7786
7787 /* DigitalClock: '<S182>/Digital Clock' */
7788 L4_MABX_B.DigitalClock_c = L4_MABX_M->Timing.t[0];
7789
7790 /* UnitDelay: '<S182>/Unit_Delay' */
7791 L4_MABX_B.Unit_Delay_ka = L4_MABX_DW.Unit_Delay_DSTATE_oj;
7792
7793 /* Sum: '<S182>/Subtract' */
7794 L4_MABX_B.Subtract_ko = L4_MABX_B.DigitalClock_c - L4_MABX_B.Unit_Delay_ka;
7795
7796 /* Product: '<S181>/Product1' */
7797 L4_MABX_B.Product1_f = L4_MABX_B.Abs_b * L4_MABX_B.Subtract_ko;
7798
7799 /* Sum: '<S181>/Add1' */
7800 L4_MABX_B.Add1_c = L4_MABX_B.Init_k + L4_MABX_B.Product1_f;
7801
7802 /* MinMax: '<S181>/MinMax2' */
7803 DeltaTime = L4_MABX_B.If_Then_Else1_mf.Switch;
7804 PositionFinalLimited = L4_MABX_B.Add1_c;
7805 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7806 PositionFinalLimited = DeltaTime;
7807 }
7808
7809 L4_MABX_B.MinMax2_c2 = PositionFinalLimited;
7810
7811 /* End of MinMax: '<S181>/MinMax2' */
7812
7813 /* Abs: '<S181>/Abs1' incorporates:
7814 * Constant: '<S177>/BRAKE_PRESS_TARGET_SLEW_DEC_APV'
7815 */
7816 L4_MABX_B.Abs1_ar = fabs(L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_DEC_APV);
7817
7818 /* Product: '<S181>/Product2' */
7819 L4_MABX_B.Product2_c3 = L4_MABX_B.Subtract_ko * L4_MABX_B.Abs1_ar;
7820
7821 /* Sum: '<S181>/Subtract1' */
7822 L4_MABX_B.Subtract1_ev = L4_MABX_B.Init_k - L4_MABX_B.Product2_c3;
7823
7824 /* MinMax: '<S181>/MinMax1' */
7825 DeltaTime = L4_MABX_B.MinMax2_c2;
7826 PositionFinalLimited = L4_MABX_B.Subtract1_ev;
7827 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7828 PositionFinalLimited = DeltaTime;
7829 }
7830
7831 L4_MABX_B.MinMax1_jw = PositionFinalLimited;
7832
7833 /* End of MinMax: '<S181>/MinMax1' */
7834
7835 /* Outputs for Atomic SubSystem: '<S181>/If_Then_Else' */
7836 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_ou, L4_MABX_B.Gain_g,
7837 L4_MABX_B.MinMax1_jw, &L4_MABX_B.If_Then_Else_nz);
7838
7839 /* End of Outputs for SubSystem: '<S181>/If_Then_Else' */
7840
7841 /* Outputs for Atomic SubSystem: '<S177>/If_Then_Else' */
7842 L4_MABX_If_Then_Else_g(L4_MABX_B.F_Brake_hold_conditions_met,
7843 L4_MABX_B.Unit_Delay_a, L4_MABX_B.If_Then_Else_nz.Switch,
7844 &L4_MABX_B.If_Then_Else_gj);
7845
7846 /* End of Outputs for SubSystem: '<S177>/If_Then_Else' */
7847
7848 /* RelationalOperator: '<S183>/min_relop' incorporates:
7849 * Constant: '<S177>/BRAKE_PRESS_TARGET_S LEW_INC_APV'
7850 * Constant: '<S183>/min_val'
7851 */
7852 L4_MABX_B.min_relop_i = (L4_MABX_P.CheckStaticLowerBound_min_i <=
7853 L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_INC_APV);
7854
7855 /* Assertion: '<S183>/Assertion' */
7856 utAssert(L4_MABX_B.min_relop_i);
7857 } else {
7858 if (L4_MABX_DW.Determine_brake_hold_pressure_t) {
7859 /* Disable for Outport: '<S177>/Brake_hold_brake_press_target_kpa' */
7860 L4_MABX_B.If_Then_Else_gj.Switch =
7861 L4_MABX_P.Brake_hold_brake_press_target_k;
7862
7863 /* Disable for Outport: '<S177>/F_Brake_hold_conditions_met' */
7864 L4_MABX_B.F_Brake_hold_conditions_met =
7865 L4_MABX_P.F_Brake_hold_conditions_met_Y0;
7866 L4_MABX_DW.Determine_brake_hold_pressure_t = false;
7867 }
7868 }
7869
7870 /* End of Outputs for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
7871
7872 /* MinMax: '<S99>/MinMax' */
7873 DeltaTime = L4_MABX_B.If_Then_Else_il.Switch;
7874 PositionFinalLimited = L4_MABX_B.If_Then_Else_gj.Switch;
7875 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7876 PositionFinalLimited = DeltaTime;
7877 }
7878
7879 L4_MABX_B.Brake_pressure_target_kpa = PositionFinalLimited;
7880
7881 /* End of MinMax: '<S99>/MinMax' */
7882
7883 /* Gain: '<S98>/Gain1' */
7884 L4_MABX_B.Bendix_2C2_Primary_brake_circui = L4_MABX_P.Gain1_Gain *
7885 L4_MABX_B.PressureP21;
7886
7887 /* Gain: '<S98>/Gain2' */
7888 L4_MABX_B.Bendix_2C2_Secondary_brake_circ = L4_MABX_P.Gain2_Gain *
7889 L4_MABX_B.PressureP22;
7890
7891 /* Sum: '<S100>/Add' */
7892 L4_MABX_B.Add_n = L4_MABX_B.Primary_brake_circuit_pressure_ +
7893 L4_MABX_B.Secondary_brake_circuit_pressur;
7894
7895 /* Gain: '<S100>/Gain' */
7896 L4_MABX_B.brake_system_avg_appl_pressure_ = L4_MABX_P.Gain_Gain_i *
7897 L4_MABX_B.Add_n;
7898
7899 /* Gain: '<S98>/Gain3' */
7900 L4_MABX_B.Primary_brake_circuit_pressur_n = L4_MABX_P.Gain3_Gain *
7901 L4_MABX_B.PressureP1;
7902
7903 /* Product: '<S100>/Divide2' */
7904 L4_MABX_B.Divide2 = L4_MABX_B.brake_system_avg_appl_pressure_ /
7905 L4_MABX_B.Primary_brake_circuit_pressur_n;
7906
7907 /* Gain: '<S100>/Gain5' */
7908 L4_MABX_B.Gain5 = L4_MABX_P.Gain5_Gain_l * L4_MABX_B.Divide2;
7909
7910 /* Saturate: '<S100>/Saturation3' */
7911 DeltaTime = L4_MABX_B.Gain5;
7912 Time56 = L4_MABX_P.Saturation3_LowerSat;
7913 PositionFinalLimited = L4_MABX_P.Saturation3_UpperSat;
7914 if (DeltaTime > PositionFinalLimited) {
7915 L4_MABX_B.Brake_appl_percent = PositionFinalLimited;
7916 } else if (DeltaTime < Time56) {
7917 L4_MABX_B.Brake_appl_percent = Time56;
7918 } else {
7919 L4_MABX_B.Brake_appl_percent = DeltaTime;
7920 }
7921
7922 /* End of Saturate: '<S100>/Saturation3' */
7923
7924 /* Outputs for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' incorporates:
7925 * EnablePort: '<S96>/Enable'
7926 */
7927 if (L4_MABX_B.F_Hold_brakes_at_zero_d) {
7928 if (!L4_MABX_DW.Bendix_2C2_brake_application_pr) {
7929 /* InitializeConditions for UnitDelay: '<S105>/Unit_Delay' */
7930 L4_MABX_DW.Unit_Delay_DSTATE_dc = L4_MABX_P.Unit_Delay_InitialCondition;
7931
7932 /* InitializeConditions for UnitDelay: '<S109>/Unit_Delay' */
7933 L4_MABX_DW.Unit_Delay_DSTATE_omj =
7934 L4_MABX_P.Unit_Delay_InitialCondition_lt;
7935
7936 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay1' */
7937 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Unit_Delay1_InitialCondition;
7938
7939 /* InitializeConditions for UnitDelay: '<S130>/Unit_Delay' */
7940 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Unit_Delay_InitialCondition_og;
7941
7942 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay2' */
7943 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm =
7944 L4_MABX_P.FixPtUnitDelay2_InitialConditio;
7945
7946 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay1' */
7947 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 =
7948 L4_MABX_P.FixPtUnitDelay1_InitialConditio;
7949
7950 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay2' */
7951 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_P.Unit_Delay2_InitialCondition;
7952
7953 /* InitializeConditions for UnitDelay: '<S104>/Unit_Delay' */
7954 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_P.Unit_Delay_InitialCondition_p;
7955 L4_MABX_DW.Bendix_2C2_brake_application_pr = true;
7956 }
7957
7958 /* Sum: '<S96>/Add' */
7959 L4_MABX_B.Add_my = L4_MABX_B.Bendix_2C2_Primary_brake_circui +
7960 L4_MABX_B.Bendix_2C2_Secondary_brake_circ;
7961
7962 /* Gain: '<S96>/Gain' */
7963 L4_MABX_B.Gain_i = L4_MABX_P.Gain_Gain * L4_MABX_B.Add_my;
7964
7965 /* Abs: '<S106>/Abs' incorporates:
7966 * Constant: '<S96>/BRK_PRESS_DEM_KI_APV'
7967 */
7968 L4_MABX_B.Abs_k4 = fabs(L4_MABX_P.BRK_PRESS_DEM_KI_APV_Value);
7969
7970 /* Abs: '<S106>/Abs1' incorporates:
7971 * Constant: '<S96>/BRK_PRESS_DEM_KD_APV'
7972 */
7973 L4_MABX_B.Abs1_ap = fabs(L4_MABX_P.BRK_PRESS_DEM_KD_APV_Value);
7974
7975 /* DigitalClock: '<S105>/Digital Clock' */
7976 L4_MABX_B.DigitalClock_j = L4_MABX_M->Timing.t[0];
7977
7978 /* UnitDelay: '<S105>/Unit_Delay' */
7979 L4_MABX_B.Unit_Delay_j = L4_MABX_DW.Unit_Delay_DSTATE_dc;
7980
7981 /* Sum: '<S105>/Subtract' */
7982 L4_MABX_B.Subtract_jr = L4_MABX_B.DigitalClock_j - L4_MABX_B.Unit_Delay_j;
7983
7984 /* UnitDelay: '<S109>/Unit_Delay' */
7985 L4_MABX_B.Unit_Delay_nm = L4_MABX_DW.Unit_Delay_DSTATE_omj;
7986
7987 /* Logic: '<S109>/Logical Operator1' incorporates:
7988 * Constant: '<S96>/CPV2'
7989 */
7990 L4_MABX_B.LogicalOperator1_ax = (L4_MABX_B.Unit_Delay_nm ||
7991 L4_MABX_P.CPV2_Value_m);
7992
7993 /* UnitDelay: '<S129>/Unit_Delay1' */
7994 L4_MABX_B.Unit_Delay1_iq = L4_MABX_DW.Unit_Delay1_DSTATE_b;
7995
7996 /* Logic: '<S129>/Logical Operator' */
7997 L4_MABX_B.LogicalOperator_m = (L4_MABX_B.LogicalOperator1_ax ||
7998 L4_MABX_B.Unit_Delay1_iq);
7999
8000 /* UnitDelay: '<S130>/Unit_Delay' */
8001 L4_MABX_B.Unit_Delay_nl = L4_MABX_DW.Unit_Delay_DSTATE_h4;
8002
8003 /* Logic: '<S130>/Logical Operator1' */
8004 L4_MABX_B.LogicalOperator1_mk = (L4_MABX_B.LogicalOperator1_ax ||
8005 L4_MABX_B.Unit_Delay_nl);
8006
8007 /* UnitDelay: '<S134>/FixPt Unit Delay2' */
8008 L4_MABX_B.FixPtUnitDelay2_op = L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm;
8009
8010 /* UnitDelay: '<S134>/FixPt Unit Delay1' */
8011 L4_MABX_B.Xold_g3 = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1;
8012
8013 /* Switch: '<S134>/Init' */
8014 if (L4_MABX_B.FixPtUnitDelay2_op != 0) {
8015 L4_MABX_B.Init_hw = L4_MABX_B.Brake_pressure_target_kpa;
8016 } else {
8017 L4_MABX_B.Init_hw = L4_MABX_B.Xold_g3;
8018 }
8019
8020 /* End of Switch: '<S134>/Init' */
8021
8022 /* Abs: '<S130>/Abs' incorporates:
8023 * Constant: '<S96>/CPV4'
8024 */
8025 L4_MABX_B.Abs_l = fabs(L4_MABX_P.CPV4_Value);
8026
8027 /* Product: '<S130>/Product1' */
8028 L4_MABX_B.Product1_b = L4_MABX_B.Abs_l * L4_MABX_B.Subtract_jr;
8029
8030 /* Sum: '<S130>/Add1' */
8031 L4_MABX_B.Add1_hu = L4_MABX_B.Init_hw + L4_MABX_B.Product1_b;
8032
8033 /* MinMax: '<S130>/MinMax2' */
8034 DeltaTime = L4_MABX_B.Brake_pressure_target_kpa;
8035 PositionFinalLimited = L4_MABX_B.Add1_hu;
8036 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8037 PositionFinalLimited = DeltaTime;
8038 }
8039
8040 L4_MABX_B.MinMax2_b = PositionFinalLimited;
8041
8042 /* End of MinMax: '<S130>/MinMax2' */
8043
8044 /* Abs: '<S130>/Abs1' incorporates:
8045 * Constant: '<S96>/CPV5'
8046 */
8047 L4_MABX_B.Abs1_d1 = fabs(L4_MABX_P.CPV5_Value);
8048
8049 /* Product: '<S130>/Product2' */
8050 L4_MABX_B.Product2_d = L4_MABX_B.Subtract_jr * L4_MABX_B.Abs1_d1;
8051
8052 /* Sum: '<S130>/Subtract1' */
8053 L4_MABX_B.Subtract1_a = L4_MABX_B.Init_hw - L4_MABX_B.Product2_d;
8054
8055 /* MinMax: '<S130>/MinMax1' */
8056 DeltaTime = L4_MABX_B.MinMax2_b;
8057 PositionFinalLimited = L4_MABX_B.Subtract1_a;
8058 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8059 PositionFinalLimited = DeltaTime;
8060 }
8061
8062 L4_MABX_B.MinMax1_ps = PositionFinalLimited;
8063
8064 /* End of MinMax: '<S130>/MinMax1' */
8065
8066 /* Outputs for Atomic SubSystem: '<S130>/If_Then_Else' */
8067 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_mk, L4_MABX_B.Gain_i,
8068 L4_MABX_B.MinMax1_ps, &L4_MABX_B.If_Then_Else_bg);
8069
8070 /* End of Outputs for SubSystem: '<S130>/If_Then_Else' */
8071
8072 /* Sum: '<S107>/Subtract' */
8073 L4_MABX_B.Subtract_n = L4_MABX_B.If_Then_Else_bg.Switch - L4_MABX_B.Gain_i;
8074
8075 /* MinMax: '<S129>/MinMax1' incorporates:
8076 * Constant: '<S96>/BRK_PRESS_DEM_T_FILT_CTRL_ERROR_APV'
8077 */
8078 DeltaTime = L4_MABX_B.Subtract_jr;
8079 PositionFinalLimited = L4_MABX_P.BRK_PRESS_DEM_T_FILT_CTRL_ERROR;
8080 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8081 PositionFinalLimited = DeltaTime;
8082 }
8083
8084 L4_MABX_B.MinMax1_h1 = PositionFinalLimited;
8085
8086 /* End of MinMax: '<S129>/MinMax1' */
8087
8088 /* Saturate: '<S129>/Saturation' */
8089 DeltaTime = L4_MABX_B.MinMax1_h1;
8090 Time56 = L4_MABX_P.Saturation_LowerSat;
8091 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat;
8092 if (DeltaTime > PositionFinalLimited) {
8093 L4_MABX_B.Saturation_pu = PositionFinalLimited;
8094 } else if (DeltaTime < Time56) {
8095 L4_MABX_B.Saturation_pu = Time56;
8096 } else {
8097 L4_MABX_B.Saturation_pu = DeltaTime;
8098 }
8099
8100 /* End of Saturate: '<S129>/Saturation' */
8101
8102 /* Product: '<S129>/Divide' */
8103 L4_MABX_B.Divide_l = L4_MABX_B.Subtract_jr / L4_MABX_B.Saturation_pu;
8104
8105 /* Product: '<S129>/Product2' */
8106 L4_MABX_B.Product2_kj = L4_MABX_B.Subtract_n * L4_MABX_B.Divide_l;
8107
8108 /* Sum: '<S129>/Subtract1' incorporates:
8109 * Constant: '<S129>/Constant1'
8110 */
8111 L4_MABX_B.Subtract1_p = L4_MABX_P.Constant1_Value - L4_MABX_B.Divide_l;
8112
8113 /* UnitDelay: '<S129>/Unit_Delay2' */
8114 L4_MABX_B.Unit_Delay2_d = L4_MABX_DW.Unit_Delay2_DSTATE_dy;
8115
8116 /* Product: '<S129>/Product1' */
8117 L4_MABX_B.Product1_c3 = L4_MABX_B.Subtract1_p * L4_MABX_B.Unit_Delay2_d;
8118
8119 /* Sum: '<S129>/Add1' */
8120 L4_MABX_B.Add1_i1 = L4_MABX_B.Product2_kj + L4_MABX_B.Product1_c3;
8121
8122 /* Outputs for Atomic SubSystem: '<S129>/If_Then_Else' */
8123 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_m, L4_MABX_B.Subtract_n,
8124 L4_MABX_B.Add1_i1, &L4_MABX_B.If_Then_Else_ly);
8125
8126 /* End of Outputs for SubSystem: '<S129>/If_Then_Else' */
8127
8128 /* RelationalOperator: '<S114>/Compare' incorporates:
8129 * Constant: '<S114>/Constant'
8130 */
8131 L4_MABX_B.Compare_aa = (L4_MABX_B.Abs1_ap >
8132 L4_MABX_P.CompareToConstant1_const);
8133
8134 /* Outputs for Enabled SubSystem: '<S106>/Calculate_D_term' */
8135
8136 /* Constant: '<S96>/BRK_PRESS_DEM_KD_APV' incorporates:
8137 * Constant: '<S96>/BRK_PRESS_DEM_T_FILT_D_APV'
8138 */
8139 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_aa,
8140 L4_MABX_P.BRK_PRESS_DEM_KD_APV_Value, L4_MABX_B.Subtract_jr,
8141 L4_MABX_B.LogicalOperator1_ax, L4_MABX_B.If_Then_Else_ly.Switch,
8142 L4_MABX_P.BRK_PRESS_DEM_T_FILT_D_APV_Valu, &L4_MABX_B.Calculate_D_term,
8143 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
8144
8145 /* End of Outputs for SubSystem: '<S106>/Calculate_D_term' */
8146
8147 /* Product: '<S112>/Product' incorporates:
8148 * Constant: '<S96>/BRK_PRESS_DEM_KP_APV'
8149 */
8150 L4_MABX_B.Product_iq = L4_MABX_P.BRK_PRESS_DEM_KP_APV_Value *
8151 L4_MABX_B.If_Then_Else_ly.Switch;
8152
8153 /* UnitDelay: '<S104>/Unit_Delay' */
8154 L4_MABX_B.Unit_Delay_ja = L4_MABX_DW.Unit_Delay_DSTATE_i;
8155
8156 /* RelationalOperator: '<S113>/Compare' incorporates:
8157 * Constant: '<S113>/Constant'
8158 */
8159 L4_MABX_B.Compare_jrp = (L4_MABX_B.Abs_k4 >
8160 L4_MABX_P.CompareToConstant_const);
8161
8162 /* Outputs for Enabled SubSystem: '<S106>/Calculate_I_term' */
8163
8164 /* Constant: '<S96>/BRK_PRESS_DEM_KI_APV' incorporates:
8165 * Constant: '<S96>/BRK_PRESS_DEM_AW_COND_INT_APV'
8166 * Constant: '<S96>/BRK_PRESS_DEM_AW_HYSTERESIS_APV'
8167 * Constant: '<S96>/CPV1'
8168 * Constant: '<S96>/CPV3'
8169 */
8170 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_jrp, L4_MABX_B.Product_iq,
8171 L4_MABX_P.BRK_PRESS_DEM_KI_APV_Value, L4_MABX_B.Brake_appl_percent,
8172 L4_MABX_B.If_Then_Else_ly.Switch, L4_MABX_B.LogicalOperator1_ax,
8173 L4_MABX_B.Subtract_jr, L4_MABX_P.CPV3_Value,
8174 L4_MABX_P.BRK_PRESS_DEM_AW_COND_INT_APV_V,
8175 L4_MABX_P.BRK_PRESS_DEM_AW_HYSTERESIS_APV, L4_MABX_P.CPV1_Value_g,
8176 L4_MABX_B.Unit_Delay_ja, &L4_MABX_B.Calculate_I_term,
8177 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
8178
8179 /* End of Outputs for SubSystem: '<S106>/Calculate_I_term' */
8180
8181 /* RelationalOperator: '<S132>/min_relop' incorporates:
8182 * Constant: '<S132>/min_val'
8183 * Constant: '<S96>/CPV4'
8184 */
8185 L4_MABX_B.min_relop_p = (L4_MABX_P.CheckStaticLowerBound_min <=
8186 L4_MABX_P.CPV4_Value);
8187
8188 /* Assertion: '<S132>/Assertion' */
8189 utAssert(L4_MABX_B.min_relop_p);
8190
8191 /* Sum: '<S108>/Add' incorporates:
8192 * Constant: '<S96>/CPV3'
8193 */
8194 L4_MABX_B.Add_e = ((L4_MABX_B.Product_iq +
8195 L4_MABX_B.Calculate_I_term.If_Then_Else.Switch) +
8196 L4_MABX_B.Calculate_D_term.Subtract) +
8197 L4_MABX_P.CPV3_Value;
8198
8199 /* RelationalOperator: '<S135>/Relational Operator1' incorporates:
8200 * Constant: '<S96>/CPV6'
8201 */
8202 L4_MABX_B.RelationalOperator1_gi = (L4_MABX_B.Add_e >= L4_MABX_P.CPV6_Value);
8203
8204 /* RelationalOperator: '<S135>/Relational Operator' incorporates:
8205 * Constant: '<S96>/CPV'
8206 */
8207 L4_MABX_B.RelationalOperator_b = (L4_MABX_B.Add_e <= L4_MABX_P.CPV_Value);
8208
8209 /* Outputs for Atomic SubSystem: '<S135>/If_Then_Else1' */
8210
8211 /* Constant: '<S96>/CPV' */
8212 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_b, L4_MABX_P.CPV_Value,
8213 L4_MABX_B.Add_e, &L4_MABX_B.If_Then_Else1_b);
8214
8215 /* End of Outputs for SubSystem: '<S135>/If_Then_Else1' */
8216
8217 /* Outputs for Atomic SubSystem: '<S135>/If_Then_Else' */
8218
8219 /* Constant: '<S96>/CPV6' */
8220 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_gi, L4_MABX_P.CPV6_Value,
8221 L4_MABX_B.If_Then_Else1_b.Switch,
8222 &L4_MABX_B.If_Then_Else_nj);
8223
8224 /* End of Outputs for SubSystem: '<S135>/If_Then_Else' */
8225 } else {
8226 if (L4_MABX_DW.Bendix_2C2_brake_application_pr) {
8227 /* Disable for Enabled SubSystem: '<S106>/Calculate_D_term' */
8228 if (L4_MABX_DW.Calculate_D_term.Calculate_D_term_MODE) {
8229 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term,
8230 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
8231 }
8232
8233 /* End of Disable for SubSystem: '<S106>/Calculate_D_term' */
8234
8235 /* Disable for Enabled SubSystem: '<S106>/Calculate_I_term' */
8236 if (L4_MABX_DW.Calculate_I_term.Calculate_I_term_MODE) {
8237 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term,
8238 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
8239 }
8240
8241 /* End of Disable for SubSystem: '<S106>/Calculate_I_term' */
8242
8243 /* Disable for Outport: '<S96>/PID_output' */
8244 L4_MABX_B.If_Then_Else_nj.Switch = L4_MABX_P.PID_output_Y0;
8245 L4_MABX_DW.Bendix_2C2_brake_application_pr = false;
8246 }
8247 }
8248
8249 /* End of Outputs for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
8250
8251 /* RelationalOperator: '<S381>/Compare' incorporates:
8252 * Constant: '<S381>/Constant'
8253 */
8254 L4_MABX_B.Compare_ey = (L4_MABX_B.SFunction1_o4_lb ==
8255 L4_MABX_P.CompareToConstant9_const);
8256
8257 /* RelationalOperator: '<S378>/Compare' incorporates:
8258 * Constant: '<S378>/Constant'
8259 */
8260 L4_MABX_B.Compare_j = (L4_MABX_B.SFunction1_o5_i ==
8261 L4_MABX_P.CompareToConstant10_const);
8262
8263 /* RelationalOperator: '<S379>/Compare' incorporates:
8264 * Constant: '<S379>/Constant'
8265 */
8266 L4_MABX_B.Compare_h = (L4_MABX_B.SFunction1_o6_f ==
8267 L4_MABX_P.CompareToConstant11_const);
8268
8269 /* RelationalOperator: '<S380>/Compare' incorporates:
8270 * Constant: '<S380>/Constant'
8271 */
8272 L4_MABX_B.Compare_bp = (L4_MABX_B.SFunction1_o7_h ==
8273 L4_MABX_P.CompareToConstant12_const);
8274
8275 /* Logic: '<S341>/Logical Operator2' */
8276 L4_MABX_B.LogicalOperator2_f = (L4_MABX_B.Compare_ey || L4_MABX_B.Compare_j ||
8277 L4_MABX_B.Compare_h || L4_MABX_B.Compare_bp);
8278
8279 /* UnitDelay: '<S383>/Unit_Delay' */
8280 L4_MABX_B.Unit_Delay_ot = L4_MABX_DW.Unit_Delay_DSTATE_cx;
8281
8282 /* Logic: '<S383>/Logical Operator1' */
8283 L4_MABX_B.LogicalOperator1_j = !L4_MABX_B.Unit_Delay_ot;
8284
8285 /* Logic: '<S383>/Logical Operator' */
8286 L4_MABX_B.LogicalOperator_f = (L4_MABX_B.LogicalOperator2_f &&
8287 L4_MABX_B.LogicalOperator1_j);
8288
8289 /* UnitDelay: '<S384>/Unit_Delay' */
8290 L4_MABX_B.Unit_Delay_jz = L4_MABX_DW.Unit_Delay_DSTATE_d0;
8291
8292 /* Logic: '<S384>/Logical Operator1' */
8293 L4_MABX_B.LogicalOperator1_ao = (L4_MABX_B.LogicalOperator_f ||
8294 L4_MABX_B.Unit_Delay_jz);
8295
8296 /* UnitDelay: '<S341>/Unit_Delay' */
8297 L4_MABX_B.Unit_Delay_k = L4_MABX_DW.Unit_Delay_DSTATE_e;
8298
8299 /* MinMax: '<S341>/MinMax' */
8300 DeltaTime = L4_MABX_B.Unit_Delay_k;
8301 PositionFinalLimited = L4_MABX_B.SFunction1_o1_m1;
8302 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8303 PositionFinalLimited = DeltaTime;
8304 }
8305
8306 L4_MABX_B.MinMax_d = PositionFinalLimited;
8307
8308 /* End of MinMax: '<S341>/MinMax' */
8309
8310 /* Outputs for Atomic SubSystem: '<S341>/If_Then_Else4' */
8311
8312 /* Constant: '<S341>/STABILITY_ACTIVE_VSPD_TARGET_APV' incorporates:
8313 * Constant: '<S341>/Constant4'
8314 */
8315 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator2_f,
8316 L4_MABX_P.STABILITY_ACTIVE_VSPD_TARGET_AP,
8317 L4_MABX_P.Constant4_Value_n, &L4_MABX_B.If_Then_Else4_h);
8318
8319 /* End of Outputs for SubSystem: '<S341>/If_Then_Else4' */
8320
8321 /* UnitDelay: '<S388>/FixPt Unit Delay2' */
8322 L4_MABX_B.FixPtUnitDelay2_b2 = L4_MABX_DW.FixPtUnitDelay2_DSTATE_aq;
8323
8324 /* UnitDelay: '<S388>/FixPt Unit Delay1' */
8325 L4_MABX_B.Xold_hq = L4_MABX_DW.FixPtUnitDelay1_DSTATE_hj;
8326
8327 /* Switch: '<S388>/Init' */
8328 if (L4_MABX_B.FixPtUnitDelay2_b2 != 0) {
8329 L4_MABX_B.Init_ip = L4_MABX_B.If_Then_Else4_h.Switch;
8330 } else {
8331 L4_MABX_B.Init_ip = L4_MABX_B.Xold_hq;
8332 }
8333
8334 /* End of Switch: '<S388>/Init' */
8335
8336 /* Abs: '<S384>/Abs' incorporates:
8337 * Constant: '<S341>/STABILITY_CTRL_SLEW_INC_APV'
8338 */
8339 L4_MABX_B.Abs_ec = fabs(L4_MABX_P.STABILITY_CTRL_SLEW_INC_APV_Val);
8340
8341 /* DigitalClock: '<S385>/Digital Clock' */
8342 L4_MABX_B.DigitalClock = L4_MABX_M->Timing.t[0];
8343
8344 /* UnitDelay: '<S385>/Unit_Delay' */
8345 L4_MABX_B.Unit_Delay_d = L4_MABX_DW.Unit_Delay_DSTATE_m;
8346
8347 /* Sum: '<S385>/Subtract' */
8348 L4_MABX_B.Subtract_l = L4_MABX_B.DigitalClock - L4_MABX_B.Unit_Delay_d;
8349
8350 /* Product: '<S384>/Product1' */
8351 L4_MABX_B.Product1_hp = L4_MABX_B.Abs_ec * L4_MABX_B.Subtract_l;
8352
8353 /* Sum: '<S384>/Add1' */
8354 L4_MABX_B.Add1_n = L4_MABX_B.Init_ip + L4_MABX_B.Product1_hp;
8355
8356 /* MinMax: '<S384>/MinMax2' */
8357 DeltaTime = L4_MABX_B.If_Then_Else4_h.Switch;
8358 PositionFinalLimited = L4_MABX_B.Add1_n;
8359 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8360 PositionFinalLimited = DeltaTime;
8361 }
8362
8363 L4_MABX_B.MinMax2_g = PositionFinalLimited;
8364
8365 /* End of MinMax: '<S384>/MinMax2' */
8366
8367 /* Abs: '<S384>/Abs1' incorporates:
8368 * Constant: '<S341>/STABILITY_CTRL_SLEW_DEC_APV'
8369 */
8370 L4_MABX_B.Abs1_h = fabs(L4_MABX_P.STABILITY_CTRL_SLEW_DEC_APV_Val);
8371
8372 /* Product: '<S384>/Product2' */
8373 L4_MABX_B.Product2_c = L4_MABX_B.Subtract_l * L4_MABX_B.Abs1_h;
8374
8375 /* Sum: '<S384>/Subtract1' */
8376 L4_MABX_B.Subtract1_n = L4_MABX_B.Init_ip - L4_MABX_B.Product2_c;
8377
8378 /* MinMax: '<S384>/MinMax1' */
8379 DeltaTime = L4_MABX_B.MinMax2_g;
8380 PositionFinalLimited = L4_MABX_B.Subtract1_n;
8381 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8382 PositionFinalLimited = DeltaTime;
8383 }
8384
8385 L4_MABX_B.MinMax1_h = PositionFinalLimited;
8386
8387 /* End of MinMax: '<S384>/MinMax1' */
8388
8389 /* Outputs for Atomic SubSystem: '<S384>/If_Then_Else' */
8390 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_ao, L4_MABX_B.MinMax_d,
8391 L4_MABX_B.MinMax1_h, &L4_MABX_B.If_Then_Else_m4);
8392
8393 /* End of Outputs for SubSystem: '<S384>/If_Then_Else' */
8394
8395 /* RelationalOperator: '<S369>/Compare' incorporates:
8396 * Constant: '<S369>/Constant'
8397 */
8398 L4_MABX_B.Compare_d = (L4_MABX_B.ACCDistanceAlertSignal ==
8399 L4_MABX_P.CompareToConstant3_const);
8400
8401 /* RelationalOperator: '<S370>/Compare' incorporates:
8402 * Constant: '<S370>/Constant'
8403 */
8404 L4_MABX_B.Compare_dv = (L4_MABX_B.ForwardCollisionWarning ==
8405 L4_MABX_P.CompareToConstant8_const);
8406
8407 /* Logic: '<S339>/Logical Operator1' */
8408 L4_MABX_B.LogicalOperator1_gm = (L4_MABX_B.Compare_d || L4_MABX_B.Compare_dv);
8409
8410 /* UnitDelay: '<S372>/Unit_Delay' */
8411 L4_MABX_B.Unit_Delay_hz = L4_MABX_DW.Unit_Delay_DSTATE_iy;
8412
8413 /* Logic: '<S372>/Logical Operator1' */
8414 L4_MABX_B.LogicalOperator1_jp = !L4_MABX_B.Unit_Delay_hz;
8415
8416 /* Logic: '<S372>/Logical Operator' */
8417 L4_MABX_B.LogicalOperator_kf = (L4_MABX_B.LogicalOperator1_gm &&
8418 L4_MABX_B.LogicalOperator1_jp);
8419
8420 /* UnitDelay: '<S373>/Unit_Delay' */
8421 L4_MABX_B.Unit_Delay_c = L4_MABX_DW.Unit_Delay_DSTATE_mv;
8422
8423 /* Logic: '<S373>/Logical Operator1' */
8424 L4_MABX_B.LogicalOperator1_l4 = (L4_MABX_B.LogicalOperator_kf ||
8425 L4_MABX_B.Unit_Delay_c);
8426
8427 /* UnitDelay: '<S339>/Unit_Delay' */
8428 L4_MABX_B.Unit_Delay_n = L4_MABX_DW.Unit_Delay_DSTATE_g;
8429
8430 /* MinMax: '<S339>/MinMax' */
8431 DeltaTime = L4_MABX_B.Unit_Delay_n;
8432 PositionFinalLimited = L4_MABX_B.SFunction1_o1_m1;
8433 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8434 PositionFinalLimited = DeltaTime;
8435 }
8436
8437 L4_MABX_B.MinMax_n = PositionFinalLimited;
8438
8439 /* End of MinMax: '<S339>/MinMax' */
8440
8441 /* Outputs for Atomic SubSystem: '<S339>/If_Then_Else4' */
8442
8443 /* Constant: '<S339>/FCW_ACTIVE_VSPD_TARGET_APV' incorporates:
8444 * Constant: '<S339>/Constant4'
8445 */
8446 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_gm,
8447 L4_MABX_P.FCW_ACTIVE_VSPD_TARGET_APV_Valu,
8448 L4_MABX_P.Constant4_Value_b, &L4_MABX_B.If_Then_Else4_e);
8449
8450 /* End of Outputs for SubSystem: '<S339>/If_Then_Else4' */
8451
8452 /* UnitDelay: '<S377>/FixPt Unit Delay2' */
8453 L4_MABX_B.FixPtUnitDelay2_p = L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip;
8454
8455 /* UnitDelay: '<S377>/FixPt Unit Delay1' */
8456 L4_MABX_B.Xold_f = L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq;
8457
8458 /* Switch: '<S377>/Init' */
8459 if (L4_MABX_B.FixPtUnitDelay2_p != 0) {
8460 L4_MABX_B.Init_b = L4_MABX_B.If_Then_Else4_e.Switch;
8461 } else {
8462 L4_MABX_B.Init_b = L4_MABX_B.Xold_f;
8463 }
8464
8465 /* End of Switch: '<S377>/Init' */
8466
8467 /* Abs: '<S373>/Abs' incorporates:
8468 * Constant: '<S339>/FCW_CTRL_SLEW_INC_APV'
8469 */
8470 L4_MABX_B.Abs_ez = fabs(L4_MABX_P.FCW_CTRL_SLEW_INC_APV_Value);
8471
8472 /* DigitalClock: '<S374>/Digital Clock' */
8473 L4_MABX_B.DigitalClock_b = L4_MABX_M->Timing.t[0];
8474
8475 /* UnitDelay: '<S374>/Unit_Delay' */
8476 L4_MABX_B.Unit_Delay_nx = L4_MABX_DW.Unit_Delay_DSTATE_bw;
8477
8478 /* Sum: '<S374>/Subtract' */
8479 L4_MABX_B.Subtract_i = L4_MABX_B.DigitalClock_b - L4_MABX_B.Unit_Delay_nx;
8480
8481 /* Product: '<S373>/Product1' */
8482 L4_MABX_B.Product1_i = L4_MABX_B.Abs_ez * L4_MABX_B.Subtract_i;
8483
8484 /* Sum: '<S373>/Add1' */
8485 L4_MABX_B.Add1_b = L4_MABX_B.Init_b + L4_MABX_B.Product1_i;
8486
8487 /* MinMax: '<S373>/MinMax2' */
8488 DeltaTime = L4_MABX_B.If_Then_Else4_e.Switch;
8489 PositionFinalLimited = L4_MABX_B.Add1_b;
8490 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8491 PositionFinalLimited = DeltaTime;
8492 }
8493
8494 L4_MABX_B.MinMax2_k = PositionFinalLimited;
8495
8496 /* End of MinMax: '<S373>/MinMax2' */
8497
8498 /* Abs: '<S373>/Abs1' incorporates:
8499 * Constant: '<S339>/FCW_CTRL_SLEW_DEC_APV'
8500 */
8501 L4_MABX_B.Abs1_c = fabs(L4_MABX_P.FCW_CTRL_SLEW_DEC_APV_Value);
8502
8503 /* Product: '<S373>/Product2' */
8504 L4_MABX_B.Product2_n = L4_MABX_B.Subtract_i * L4_MABX_B.Abs1_c;
8505
8506 /* Sum: '<S373>/Subtract1' */
8507 L4_MABX_B.Subtract1_ht = L4_MABX_B.Init_b - L4_MABX_B.Product2_n;
8508
8509 /* MinMax: '<S373>/MinMax1' */
8510 DeltaTime = L4_MABX_B.MinMax2_k;
8511 PositionFinalLimited = L4_MABX_B.Subtract1_ht;
8512 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8513 PositionFinalLimited = DeltaTime;
8514 }
8515
8516 L4_MABX_B.MinMax1_j = PositionFinalLimited;
8517
8518 /* End of MinMax: '<S373>/MinMax1' */
8519
8520 /* Outputs for Atomic SubSystem: '<S373>/If_Then_Else' */
8521 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_l4, L4_MABX_B.MinMax_n,
8522 L4_MABX_B.MinMax1_j, &L4_MABX_B.If_Then_Else_bf);
8523
8524 /* End of Outputs for SubSystem: '<S373>/If_Then_Else' */
8525
8526 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
8527 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
8528 L4_MABX_B.pathSpdLimit_a = L4_MABX_DW.TmpRTBAtSignalConversion3Inport;
8529 }
8530
8531 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8532 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8533 */
8534 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8535 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8536 /* SignalConversion: '<S81>/Signal Conversion3' */
8537 L4_MABX_B.Vehicle_speed_abs_max_e = L4_MABX_B.pathSpdLimit_a;
8538 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_e;
8539 break;
8540
8541 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8542 /* SignalConversion: '<S81>/Signal Conversion8' incorporates:
8543 * Constant: '<S81>/VSPD_ABS_MAX_APV'
8544 */
8545 L4_MABX_B.Vehicle_speed_abs_max_j = L4_MABX_P.VSPD_ABS_MAX_APV_Value;
8546 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_j;
8547 break;
8548
8549 default:
8550 /* SignalConversion: '<S81>/Signal Conversion15' incorporates:
8551 * Constant: '<S81>/CPV1'
8552 */
8553 L4_MABX_B.Vehicle_speed_abs_max_g = L4_MABX_P.CPV1_Value;
8554 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_g;
8555 break;
8556 }
8557
8558 /* RelationalOperator: '<S335>/Compare' incorporates:
8559 * Constant: '<S335>/Constant'
8560 */
8561 L4_MABX_B.Compare_jr = (L4_MABX_B.SFunction1_o7_l0 ==
8562 L4_MABX_P.Constant_Value_a);
8563
8564 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
8565 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
8566 L4_MABX_B.distance_o = L4_MABX_DW.TmpRTBAtSignalConversion2Inport;
8567 }
8568
8569 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8570 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8571 */
8572 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8573 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8574 /* SignalConversion: '<S81>/Signal Conversion2' */
8575 L4_MABX_B.Distance_to_achieve_speed_tar_f = L4_MABX_B.distance_o;
8576 L4_MABX_B.Distance_to_achieve_speed_targe =
8577 L4_MABX_B.Distance_to_achieve_speed_tar_f;
8578 break;
8579
8580 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8581 /* SignalConversion: '<S81>/Signal Conversion7' incorporates:
8582 * Constant: '<S81>/DISTANCE_M'
8583 */
8584 L4_MABX_B.Distance_to_achieve_speed_tar_j = DISTANCE_M;
8585 L4_MABX_B.Distance_to_achieve_speed_targe =
8586 L4_MABX_B.Distance_to_achieve_speed_tar_j;
8587 break;
8588
8589 default:
8590 /* SignalConversion: '<S81>/Signal Conversion14' incorporates:
8591 * Constant: '<S81>/CPV'
8592 */
8593 L4_MABX_B.Distance_to_achieve_speed_tar_m = L4_MABX_P.CPV_Value_ia;
8594 L4_MABX_B.Distance_to_achieve_speed_targe =
8595 L4_MABX_B.Distance_to_achieve_speed_tar_m;
8596 break;
8597 }
8598
8599 /* UnitDelay: '<S336>/Delay Input1' */
8600 L4_MABX_B.Uk1[0] = L4_MABX_DW.DelayInput1_DSTATE[0];
8601 L4_MABX_B.Uk1[1] = L4_MABX_DW.DelayInput1_DSTATE[1];
8602
8603 /* RelationalOperator: '<S336>/FixPt Relational Operator' */
8604 L4_MABX_B.FixPtRelationalOperator_d[0] =
8605 (L4_MABX_B.Distance_to_achieve_speed_targe != L4_MABX_B.Uk1[0]);
8606 L4_MABX_B.FixPtRelationalOperator_d[1] = (L4_MABX_B.Vehicle_speed_target_o !=
8607 L4_MABX_B.Uk1[1]);
8608
8609 /* Logic: '<S81>/Logical Operator1' */
8610 L4_MABX_B.LogicalOperator1_ja = (L4_MABX_B.FixPtRelationalOperator_d[0] ||
8611 L4_MABX_B.FixPtRelationalOperator_d[1]);
8612
8613 /* Saturate: '<S338>/Saturation5' */
8614 DeltaTime = L4_MABX_B.SFunction1_o1_m1;
8615 Time56 = L4_MABX_P.Saturation5_LowerSat;
8616 PositionFinalLimited = L4_MABX_P.Saturation5_UpperSat;
8617 if (DeltaTime > PositionFinalLimited) {
8618 L4_MABX_B.Saturation5 = PositionFinalLimited;
8619 } else if (DeltaTime < Time56) {
8620 L4_MABX_B.Saturation5 = Time56;
8621 } else {
8622 L4_MABX_B.Saturation5 = DeltaTime;
8623 }
8624
8625 /* End of Saturate: '<S338>/Saturation5' */
8626
8627 /* MinMax: '<S338>/MinMax6' incorporates:
8628 * Constant: '<S338>/MIN_VSPD_SIGMOID_INITIAL_KPH_APV'
8629 */
8630 DeltaTime = L4_MABX_B.Saturation5;
8631 PositionFinalLimited = L4_MABX_P.MIN_VSPD_SIGMOID_INITIAL_KPH_AP;
8632 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8633 PositionFinalLimited = DeltaTime;
8634 }
8635
8636 L4_MABX_B.MinMax6 = PositionFinalLimited;
8637
8638 /* End of MinMax: '<S338>/MinMax6' */
8639
8640 /* Gain: '<S338>/Gain1' */
8641 L4_MABX_B.Gain1_e = L4_MABX_P.Gain1_Gain_a * L4_MABX_B.MinMax6;
8642
8643 /* Saturate: '<S338>/Saturation4' */
8644 DeltaTime = L4_MABX_B.Vehicle_speed_target_o;
8645 Time56 = L4_MABX_P.Saturation4_LowerSat;
8646 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat;
8647 if (DeltaTime > PositionFinalLimited) {
8648 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = PositionFinalLimited;
8649 } else if (DeltaTime < Time56) {
8650 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = Time56;
8651 } else {
8652 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = DeltaTime;
8653 }
8654
8655 /* End of Saturate: '<S338>/Saturation4' */
8656
8657 /* MinMax: '<S338>/MinMax1' incorporates:
8658 * Constant: '<S338>/MIN_VSPD_SIGMOID_FINAL_KPH_APV'
8659 */
8660 DeltaTime = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
8661 PositionFinalLimited = L4_MABX_P.MIN_VSPD_SIGMOID_FINAL_KPH_APV_;
8662 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8663 PositionFinalLimited = DeltaTime;
8664 }
8665
8666 L4_MABX_B.MinMax1_f = PositionFinalLimited;
8667
8668 /* End of MinMax: '<S338>/MinMax1' */
8669
8670 /* Gain: '<S338>/Gain2' */
8671 L4_MABX_B.Gain2 = L4_MABX_P.Gain2_Gain_k * L4_MABX_B.MinMax1_f;
8672
8673 /* Saturate: '<S338>/Saturation6' */
8674 DeltaTime = SPN1810_LongitudinalAcceleration;
8675 Time56 = L4_MABX_P.Saturation6_LowerSat;
8676 PositionFinalLimited = L4_MABX_P.Saturation6_UpperSat;
8677 if (DeltaTime > PositionFinalLimited) {
8678 L4_MABX_B.Saturation6 = PositionFinalLimited;
8679 } else if (DeltaTime < Time56) {
8680 L4_MABX_B.Saturation6 = Time56;
8681 } else {
8682 L4_MABX_B.Saturation6 = DeltaTime;
8683 }
8684
8685 /* End of Saturate: '<S338>/Saturation6' */
8686
8687 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8688 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8689 */
8690 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8691 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8692 /* SignalConversion: '<S81>/Signal Conversion10' incorporates:
8693 * Constant: '<S81>/CPV3'
8694 */
8695 L4_MABX_B.Acceleration_target_ms2_d = L4_MABX_P.CPV3_Value_l;
8696 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_d;
8697 break;
8698
8699 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8700 /* SignalConversion: '<S81>/Signal Conversion5' incorporates:
8701 * Constant: '<S81>/VEH_ACCEL_TARGET_APV'
8702 */
8703 L4_MABX_B.Acceleration_target_ms2_h = L4_MABX_P.VEH_ACCEL_TARGET_APV_Value;
8704 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_h;
8705 break;
8706
8707 default:
8708 /* SignalConversion: '<S81>/Signal Conversion11' incorporates:
8709 * Constant: '<S81>/CPV2'
8710 */
8711 L4_MABX_B.Acceleration_target_ms2_f = L4_MABX_P.CPV2_Value;
8712 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_f;
8713 break;
8714 }
8715
8716 /* Saturate: '<S338>/Saturation7' */
8717 DeltaTime = L4_MABX_B.Acceleration_target_ms2;
8718 Time56 = L4_MABX_P.Saturation7_LowerSat;
8719 PositionFinalLimited = L4_MABX_P.Saturation7_UpperSat;
8720 if (DeltaTime > PositionFinalLimited) {
8721 L4_MABX_B.Saturation7 = PositionFinalLimited;
8722 } else if (DeltaTime < Time56) {
8723 L4_MABX_B.Saturation7 = Time56;
8724 } else {
8725 L4_MABX_B.Saturation7 = DeltaTime;
8726 }
8727
8728 /* End of Saturate: '<S338>/Saturation7' */
8729
8730 /* Saturate: '<S338>/Saturation1' incorporates:
8731 * Constant: '<S81>/VEH_JERK_INITIAL_APV'
8732 */
8733 DeltaTime = L4_MABX_P.VEH_JERK_INITIAL_APV_Value;
8734 Time56 = L4_MABX_P.Saturation1_LowerSat_b;
8735 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_o;
8736 if (DeltaTime > PositionFinalLimited) {
8737 L4_MABX_B.Saturation1 = PositionFinalLimited;
8738 } else if (DeltaTime < Time56) {
8739 L4_MABX_B.Saturation1 = Time56;
8740 } else {
8741 L4_MABX_B.Saturation1 = DeltaTime;
8742 }
8743
8744 /* End of Saturate: '<S338>/Saturation1' */
8745
8746 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8747 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8748 */
8749 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8750 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8751 /* SignalConversion: '<S81>/Signal Conversion13' incorporates:
8752 * Constant: '<S81>/CPV4'
8753 */
8754 L4_MABX_B.Jerk_target_ms3_g = L4_MABX_P.CPV4_Value_k;
8755 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_g;
8756 break;
8757
8758 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8759 /* SignalConversion: '<S81>/Signal Conversion6' incorporates:
8760 * Constant: '<S81>/VEH_JERK_TARGET_APV'
8761 */
8762 L4_MABX_B.Jerk_target_ms3_d = L4_MABX_P.VEH_JERK_TARGET_APV_Value;
8763 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_d;
8764 break;
8765
8766 default:
8767 /* SignalConversion: '<S81>/Signal Conversion12' incorporates:
8768 * Constant: '<S81>/CPV5'
8769 */
8770 L4_MABX_B.Jerk_target_ms3_l = L4_MABX_P.CPV5_Value_n;
8771 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_l;
8772 break;
8773 }
8774
8775 /* Saturate: '<S338>/Saturation2' */
8776 DeltaTime = L4_MABX_B.Jerk_target_ms3;
8777 Time56 = L4_MABX_P.Saturation2_LowerSat;
8778 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat;
8779 if (DeltaTime > PositionFinalLimited) {
8780 L4_MABX_B.Saturation2 = PositionFinalLimited;
8781 } else if (DeltaTime < Time56) {
8782 L4_MABX_B.Saturation2 = Time56;
8783 } else {
8784 L4_MABX_B.Saturation2 = DeltaTime;
8785 }
8786
8787 /* End of Saturate: '<S338>/Saturation2' */
8788
8789 /* Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
8790 /* Gateway: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8791 /* During: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8792 /* Entry Internal: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8793 /* Transition: '<S353>:88' */
8794 if (L4_MABX_B.LogicalOperator1_ja) {
8795 /* Transition: '<S353>:89' */
8796 /* Transition: '<S353>:39' */
8797 PositionFinalLimited = L4_MABX_B.Distance_to_achieve_speed_targe;
8798 if ((0.001 > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8799 PositionFinalLimited = 0.001;
8800 }
8801
8802 Time56 = L4_MABX_B.Gain1_e;
8803 if ((0.1 > Time56) || rtIsNaN(Time56)) {
8804 L4_MABX_DW.VelocityInitialLimited = 0.1;
8805 } else {
8806 L4_MABX_DW.VelocityInitialLimited = Time56;
8807 }
8808
8809 Time56 = L4_MABX_B.Gain2;
8810 if ((0.1 > Time56) || rtIsNaN(Time56)) {
8811 L4_MABX_DW.VelocityFinalLimited = 0.1;
8812 } else {
8813 L4_MABX_DW.VelocityFinalLimited = Time56;
8814 }
8815
8816 L4_MABX_DW.TimeFinal = 2.0 * PositionFinalLimited /
8817 (L4_MABX_DW.VelocityInitialLimited + L4_MABX_DW.VelocityFinalLimited);
8818 Time56 = L4_MABX_DW.TimeFinal;
8819 if ((0.007 > Time56) || rtIsNaN(Time56)) {
8820 L4_MABX_DW.TimeFinal = 0.007;
8821 } else {
8822 L4_MABX_DW.TimeFinal = Time56;
8823 }
8824
8825 AccelerationAverage = (L4_MABX_DW.VelocityFinalLimited -
8826 L4_MABX_DW.VelocityInitialLimited) / L4_MABX_DW.TimeFinal;
8827 L4_MABX_DW.TimeFinal *= 2.0;
8828 if (L4_MABX_DW.VelocityFinalLimited > L4_MABX_DW.VelocityInitialLimited) {
8829 /* Transition: '<S353>:238' */
8830 /* Transition: '<S353>:240' */
8831 Time56 = L4_MABX_B.Saturation6;
8832 if ((AccelerationAverage < Time56) || rtIsNaN(Time56)) {
8833 Time56 = AccelerationAverage;
8834 }
8835
8836 if ((0.0 > Time56) || rtIsNaN(Time56)) {
8837 L4_MABX_DW.AccelerationInitialLimited = 0.0;
8838 } else {
8839 L4_MABX_DW.AccelerationInitialLimited = Time56;
8840 }
8841
8842 Time56 = L4_MABX_B.Saturation7;
8843 if ((AccelerationAverage < Time56) || rtIsNaN(Time56)) {
8844 Time56 = AccelerationAverage;
8845 }
8846
8847 if ((0.0 > Time56) || rtIsNaN(Time56)) {
8848 L4_MABX_DW.AccelerationFinalLimited = 0.0;
8849 } else {
8850 L4_MABX_DW.AccelerationFinalLimited = Time56;
8851 }
8852
8853 /* Transition: '<S353>:243' */
8854 } else {
8855 /* Transition: '<S353>:241' */
8856 Time56 = L4_MABX_B.Saturation6;
8857 if ((0.0 < Time56) || rtIsNaN(Time56)) {
8858 Time56 = 0.0;
8859 }
8860
8861 if ((AccelerationAverage > Time56) || rtIsNaN(Time56)) {
8862 L4_MABX_DW.AccelerationInitialLimited = AccelerationAverage;
8863 } else {
8864 L4_MABX_DW.AccelerationInitialLimited = Time56;
8865 }
8866
8867 Time56 = L4_MABX_B.Saturation7;
8868 if ((0.0 < Time56) || rtIsNaN(Time56)) {
8869 Time56 = 0.0;
8870 }
8871
8872 if ((AccelerationAverage > Time56) || rtIsNaN(Time56)) {
8873 L4_MABX_DW.AccelerationFinalLimited = AccelerationAverage;
8874 } else {
8875 L4_MABX_DW.AccelerationFinalLimited = Time56;
8876 }
8877 }
8878
8879 /* Transition: '<S353>:16' */
8880 DeltaTimeFinal = L4_MABX_DW.TimeFinal;
8881 for (starting_index = 1U; starting_index < 16; starting_index++) {
8882 /* Transition: '<S353>:14' */
8883 /* Transition: '<S353>:201' */
8884 DeltaTime = ((L4_MABX_DW.VelocityInitialLimited -
8885 L4_MABX_DW.VelocityFinalLimited) +
8886 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.TimeFinal) *
8887 2.0 / (L4_MABX_DW.TimeFinal * L4_MABX_DW.TimeFinal);
8888 if (L4_MABX_DW.VelocityFinalLimited > L4_MABX_DW.VelocityInitialLimited) {
8889 /* Transition: '<S353>:121' */
8890 /* Transition: '<S353>:116' */
8891 L4_MABX_DW.Jerk12 = L4_MABX_B.Saturation1;
8892 DeltaTime = fabs(DeltaTime);
8893 Time56 = L4_MABX_B.Saturation2;
8894 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
8895 Time56 = DeltaTime;
8896 }
8897
8898 L4_MABX_DW.Jerk56 = -Time56;
8899
8900 /* Transition: '<S353>:120' */
8901 } else {
8902 /* Transition: '<S353>:122' */
8903 L4_MABX_DW.Jerk12 = -L4_MABX_B.Saturation1;
8904 DeltaTime = fabs(DeltaTime);
8905 Time56 = L4_MABX_B.Saturation2;
8906 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
8907 L4_MABX_DW.Jerk56 = DeltaTime;
8908 } else {
8909 L4_MABX_DW.Jerk56 = Time56;
8910 }
8911 }
8912
8913 /* Transition: '<S353>:275' */
8914 L4_MABX_CalculateAcceleration34();
8915 if (fabs(L4_MABX_DW.Acceleration34 - AccelerationAverage) < 0.001) {
8916 /* Transition: '<S353>:141' */
8917 /* Transition: '<S353>:145' */
8918 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8919 L4_MABX_B.TimeVectorRaw[1] = 0.001;
8920 L4_MABX_B.TimeVectorRaw[2] = 0.003;
8921 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - 0.002) - 0.001;
8922 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - 0.002) + 0.001;
8923 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8924 for (i = 0; i < 6; i++) {
8925 L4_MABX_B.JerkVectorRaw[i] = 0.0;
8926 }
8927
8928 L4_MABX_B.AccelerationVectorRaw[0] = AccelerationAverage;
8929
8930 /* Transition: '<S353>:191' */
8931 /* Transition: '<S353>:303' */
8932 } else {
8933 /* Transition: '<S353>:298' */
8934 if (L4_MABX_DW.AlternateMethod) {
8935 /* Transition: '<S353>:300' */
8936 /* Transition: '<S353>:302' */
8937 Time56 = (L4_MABX_DW.AccelerationFinalLimited -
8938 L4_MABX_DW.Acceleration34) / L4_MABX_DW.Jerk56;
8939 if ((0.002 > Time56) || rtIsNaN(Time56)) {
8940 Time56 = 0.002;
8941 }
8942
8943 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8944 L4_MABX_B.TimeVectorRaw[1] = 0.001;
8945 L4_MABX_B.TimeVectorRaw[2] = 0.003;
8946 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - Time56) - 0.001;
8947 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - Time56) + 0.001;
8948 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8949 L4_MABX_B.JerkVectorRaw[0] = 0.0;
8950 L4_MABX_B.JerkVectorRaw[1] = 0.0;
8951 L4_MABX_B.JerkVectorRaw[2] = 0.0;
8952 L4_MABX_B.JerkVectorRaw[3] = 0.0;
8953 L4_MABX_B.JerkVectorRaw[4] = L4_MABX_DW.Jerk56;
8954 L4_MABX_B.JerkVectorRaw[5] = L4_MABX_DW.Jerk56;
8955 L4_MABX_B.AccelerationVectorRaw[0] = L4_MABX_DW.Acceleration34;
8956
8957 /* Transition: '<S353>:303' */
8958 } else {
8959 /* Transition: '<S353>:157' */
8960 DeltaTime = (L4_MABX_DW.Acceleration34 -
8961 L4_MABX_DW.AccelerationInitialLimited) /
8962 L4_MABX_DW.Jerk12;
8963 if ((0.002 > DeltaTime) || rtIsNaN(DeltaTime)) {
8964 DeltaTime = 0.002;
8965 }
8966
8967 Time56 = (L4_MABX_DW.AccelerationFinalLimited -
8968 L4_MABX_DW.Acceleration34) / L4_MABX_DW.Jerk56;
8969 if ((0.002 > Time56) || rtIsNaN(Time56)) {
8970 Time56 = 0.002;
8971 }
8972
8973 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8974 L4_MABX_B.TimeVectorRaw[1] = DeltaTime - 0.001;
8975 L4_MABX_B.TimeVectorRaw[2] = DeltaTime + 0.001;
8976 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - Time56) - 0.001;
8977 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - Time56) + 0.001;
8978 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8979 L4_MABX_B.JerkVectorRaw[0] = L4_MABX_DW.Jerk12;
8980 L4_MABX_B.JerkVectorRaw[1] = L4_MABX_DW.Jerk12;
8981 L4_MABX_B.JerkVectorRaw[2] = 0.0;
8982 L4_MABX_B.JerkVectorRaw[3] = 0.0;
8983 L4_MABX_B.JerkVectorRaw[4] = L4_MABX_DW.Jerk56;
8984 L4_MABX_B.JerkVectorRaw[5] = L4_MABX_DW.Jerk56;
8985 L4_MABX_B.AccelerationVectorRaw[0] =
8986 L4_MABX_DW.AccelerationInitialLimited;
8987 }
8988 }
8989
8990 /* Transition: '<S353>:29' */
8991 L4_MABX_B.VelocityVectorRaw[0] = L4_MABX_DW.VelocityInitialLimited;
8992 L4_MABX_B.PositionVectorRaw[0] = 0.0;
8993 for (j = 2U; j < 7; j++) {
8994 /* Transition: '<S353>:34' */
8995 /* Transition: '<S353>:36' */
8996 DeltaTime = L4_MABX_B.TimeVectorRaw[j - 1] - L4_MABX_B.TimeVectorRaw[j -
8997 2];
8998 L4_MABX_B.AccelerationVectorRaw[j - 1] = L4_MABX_B.JerkVectorRaw[j - 2] *
8999 DeltaTime + L4_MABX_B.AccelerationVectorRaw[j - 2];
9000 L4_MABX_B.VelocityVectorRaw[j - 1] = (L4_MABX_B.AccelerationVectorRaw[j
9001 - 2] * DeltaTime + L4_MABX_B.VelocityVectorRaw[j - 2]) +
9002 L4_MABX_B.JerkVectorRaw[j - 2] * 0.5 * (DeltaTime * DeltaTime);
9003 L4_MABX_B.PositionVectorRaw[j - 1] = ((L4_MABX_B.VelocityVectorRaw[j - 2]
9004 * DeltaTime + L4_MABX_B.PositionVectorRaw[j - 2]) +
9005 L4_MABX_B.AccelerationVectorRaw[j - 2] * 0.5 * (DeltaTime * DeltaTime))
9006 + L4_MABX_B.JerkVectorRaw[j - 2] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9007
9008 /* Transition: '<S353>:33' */
9009 }
9010
9011 /* Transition: '<S353>:37' */
9012 DeltaTimeFinal *= 0.5;
9013 if ((L4_MABX_B.PositionVectorRaw[5] - PositionFinalLimited < 0.0) &&
9014 (L4_MABX_B.VelocityVectorRaw[5] > 0.0)) {
9015 /* Transition: '<S353>:61' */
9016 /* Transition: '<S353>:62' */
9017 L4_MABX_DW.TimeFinal += DeltaTimeFinal;
9018
9019 /* Transition: '<S353>:64' */
9020 } else {
9021 /* Transition: '<S353>:63' */
9022 L4_MABX_DW.TimeFinal -= DeltaTimeFinal;
9023 }
9024
9025 /* Transition: '<S353>:60' */
9026 Time56 = L4_MABX_DW.TimeFinal;
9027 if ((0.007 > Time56) || rtIsNaN(Time56)) {
9028 L4_MABX_DW.TimeFinal = 0.007;
9029 } else {
9030 L4_MABX_DW.TimeFinal = Time56;
9031 }
9032
9033 /* Transition: '<S353>:17' */
9034 }
9035
9036 /* Transition: '<S353>:18' */
9037 /* Transition: '<S353>:91' */
9038 } else {
9039 /* Transition: '<S353>:90' */
9040 }
9041
9042 /* End of Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
9043
9044 /* Chart: '<S338>/TwentyPointVectorCalculation' */
9045 if (L4_MABX_B.LogicalOperator1_ja) {
9046 /* Transition: '<S352>:89' */
9047 /* Transition: '<S352>:39' */
9048 L4_MABX_B.TimeVector[0] = L4_MABX_B.TimeVectorRaw[0];
9049 L4_MABX_B.JerkVector[0] = L4_MABX_B.JerkVectorRaw[0];
9050 L4_MABX_B.AccelerationVector[0] = L4_MABX_B.AccelerationVectorRaw[0];
9051 L4_MABX_B.VelocityVector[0] = L4_MABX_B.VelocityVectorRaw[0];
9052 L4_MABX_B.PositionVector[0] = L4_MABX_B.PositionVectorRaw[0];
9053 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[1] -
9054 L4_MABX_B.TimeVectorRaw[0]) / 10.0;
9055 for (starting_index = 2U; starting_index < 11; starting_index++) {
9056 /* Transition: '<S352>:14' */
9057 /* Transition: '<S352>:101' */
9058 L4_MABX_B.TimeVector[starting_index - 1] =
9059 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9060 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9061 L4_MABX_B.TimeVectorRaw[0];
9062 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[0];
9063 L4_MABX_B.AccelerationVector[starting_index - 1] =
9064 L4_MABX_B.JerkVectorRaw[0] * DeltaTime +
9065 L4_MABX_B.AccelerationVectorRaw[0];
9066 L4_MABX_B.VelocityVector[starting_index - 1] =
9067 (L4_MABX_B.AccelerationVectorRaw[0] * DeltaTime +
9068 L4_MABX_B.VelocityVectorRaw[0]) + 0.5 * L4_MABX_B.JerkVectorRaw[0] *
9069 (DeltaTime * DeltaTime);
9070 L4_MABX_B.PositionVector[starting_index - 1] =
9071 ((L4_MABX_B.VelocityVectorRaw[0] * DeltaTime +
9072 L4_MABX_B.PositionVectorRaw[0]) + 0.5 *
9073 L4_MABX_B.AccelerationVectorRaw[0] * (DeltaTime * DeltaTime)) +
9074 L4_MABX_B.JerkVectorRaw[0] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9075 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9076 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9077 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9078 Time56 = DeltaTime;
9079 }
9080
9081 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9082
9083 /* Transition: '<S352>:17' */
9084 }
9085
9086 /* Transition: '<S352>:110' */
9087 L4_MABX_B.TimeVector[10] = L4_MABX_B.TimeVectorRaw[1];
9088 L4_MABX_B.JerkVector[10] = L4_MABX_B.JerkVectorRaw[1];
9089 L4_MABX_B.AccelerationVector[10] = L4_MABX_B.AccelerationVectorRaw[1];
9090 L4_MABX_B.VelocityVector[10] = L4_MABX_B.VelocityVectorRaw[1];
9091 DeltaTime = L4_MABX_B.PositionVector[9] + 0.0001;
9092 Time56 = L4_MABX_B.PositionVectorRaw[1];
9093 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9094 Time56 = DeltaTime;
9095 }
9096
9097 L4_MABX_B.PositionVector[10] = Time56;
9098 L4_MABX_B.TimeVector[11] = L4_MABX_B.TimeVectorRaw[2];
9099 L4_MABX_B.JerkVector[11] = L4_MABX_B.JerkVectorRaw[2];
9100 L4_MABX_B.AccelerationVector[11] = L4_MABX_B.AccelerationVectorRaw[2];
9101 L4_MABX_B.VelocityVector[11] = L4_MABX_B.VelocityVectorRaw[2];
9102 DeltaTime = L4_MABX_B.PositionVector[10] + 0.0001;
9103 Time56 = L4_MABX_B.PositionVectorRaw[2];
9104 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9105 Time56 = DeltaTime;
9106 }
9107
9108 L4_MABX_B.PositionVector[11] = Time56;
9109 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[3] -
9110 L4_MABX_B.TimeVectorRaw[2]) / 10.0;
9111 for (starting_index = 13U; starting_index < 22; starting_index++) {
9112 /* Transition: '<S352>:127' */
9113 /* Transition: '<S352>:133' */
9114 L4_MABX_B.TimeVector[starting_index - 1] =
9115 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9116 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9117 L4_MABX_B.TimeVectorRaw[2];
9118 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[2];
9119 L4_MABX_B.AccelerationVector[starting_index - 1] =
9120 L4_MABX_B.JerkVectorRaw[2] * DeltaTime +
9121 L4_MABX_B.AccelerationVectorRaw[2];
9122 L4_MABX_B.VelocityVector[starting_index - 1] =
9123 (L4_MABX_B.AccelerationVectorRaw[2] * DeltaTime +
9124 L4_MABX_B.VelocityVectorRaw[2]) + 0.5 * L4_MABX_B.JerkVectorRaw[2] *
9125 (DeltaTime * DeltaTime);
9126 L4_MABX_B.PositionVector[starting_index - 1] =
9127 ((L4_MABX_B.VelocityVectorRaw[2] * DeltaTime +
9128 L4_MABX_B.PositionVectorRaw[2]) + 0.5 *
9129 L4_MABX_B.AccelerationVectorRaw[2] * (DeltaTime * DeltaTime)) +
9130 L4_MABX_B.JerkVectorRaw[2] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9131 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9132 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9133 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9134 Time56 = DeltaTime;
9135 }
9136
9137 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9138
9139 /* Transition: '<S352>:131' */
9140 }
9141
9142 /* Transition: '<S352>:132' */
9143 L4_MABX_B.TimeVector[21] = L4_MABX_B.TimeVectorRaw[3];
9144 L4_MABX_B.JerkVector[21] = L4_MABX_B.JerkVectorRaw[3];
9145 L4_MABX_B.AccelerationVector[21] = L4_MABX_B.AccelerationVectorRaw[3];
9146 L4_MABX_B.VelocityVector[21] = L4_MABX_B.VelocityVectorRaw[3];
9147 DeltaTime = L4_MABX_B.PositionVector[20] + 0.0001;
9148 Time56 = L4_MABX_B.PositionVectorRaw[3];
9149 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9150 Time56 = DeltaTime;
9151 }
9152
9153 L4_MABX_B.PositionVector[21] = Time56;
9154 L4_MABX_B.TimeVector[22] = L4_MABX_B.TimeVectorRaw[4];
9155 L4_MABX_B.JerkVector[22] = L4_MABX_B.JerkVectorRaw[4];
9156 L4_MABX_B.AccelerationVector[22] = L4_MABX_B.AccelerationVectorRaw[4];
9157 L4_MABX_B.VelocityVector[22] = L4_MABX_B.VelocityVectorRaw[4];
9158 DeltaTime = L4_MABX_B.PositionVector[21] + 0.0001;
9159 Time56 = L4_MABX_B.PositionVectorRaw[4];
9160 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9161 Time56 = DeltaTime;
9162 }
9163
9164 L4_MABX_B.PositionVector[22] = Time56;
9165 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[5] -
9166 L4_MABX_B.TimeVectorRaw[4]) / 10.0;
9167 for (starting_index = 24U; starting_index < 33; starting_index++) {
9168 /* Transition: '<S352>:111' */
9169 /* Transition: '<S352>:113' */
9170 L4_MABX_B.TimeVector[starting_index - 1] =
9171 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9172 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9173 L4_MABX_B.TimeVectorRaw[4];
9174 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[4];
9175 L4_MABX_B.AccelerationVector[starting_index - 1] =
9176 L4_MABX_B.JerkVectorRaw[4] * DeltaTime +
9177 L4_MABX_B.AccelerationVectorRaw[4];
9178 L4_MABX_B.VelocityVector[starting_index - 1] =
9179 (L4_MABX_B.AccelerationVectorRaw[4] * DeltaTime +
9180 L4_MABX_B.VelocityVectorRaw[4]) + 0.5 * L4_MABX_B.JerkVectorRaw[4] *
9181 (DeltaTime * DeltaTime);
9182 L4_MABX_B.PositionVector[starting_index - 1] =
9183 ((L4_MABX_B.VelocityVectorRaw[4] * DeltaTime +
9184 L4_MABX_B.PositionVectorRaw[4]) + 0.5 *
9185 L4_MABX_B.AccelerationVectorRaw[4] * (DeltaTime * DeltaTime)) +
9186 L4_MABX_B.JerkVectorRaw[4] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9187 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9188 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9189 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9190 Time56 = DeltaTime;
9191 }
9192
9193 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9194
9195 /* Transition: '<S352>:112' */
9196 }
9197
9198 /* Transition: '<S352>:114' */
9199 L4_MABX_B.TimeVector[32] = L4_MABX_B.TimeVectorRaw[5];
9200 L4_MABX_B.JerkVector[32] = L4_MABX_B.JerkVectorRaw[5];
9201 L4_MABX_B.AccelerationVector[32] = L4_MABX_B.AccelerationVectorRaw[5];
9202 L4_MABX_B.VelocityVector[32] = L4_MABX_B.VelocityVectorRaw[5];
9203 DeltaTime = L4_MABX_B.PositionVector[31] + 0.0001;
9204 Time56 = L4_MABX_B.PositionVectorRaw[5];
9205 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9206 Time56 = DeltaTime;
9207 }
9208
9209 L4_MABX_B.PositionVector[32] = Time56;
9210
9211 /* Transition: '<S352>:141' */
9212 } else {
9213 /* Transition: '<S352>:90' */
9214 }
9215
9216 /* End of Chart: '<S338>/TwentyPointVectorCalculation' */
9217
9218 /* Gain: '<S338>/Gain3' */
9219 /* Transition: '<S353>:93' */
9220 /* Gateway: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9221 /* During: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9222 /* Entry Internal: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9223 /* Transition: '<S352>:88' */
9224 /* Transition: '<S352>:93' */
9225 for (i = 0; i < 33; i++) {
9226 L4_MABX_B.Vehicle_speed_vector_kph[i] = L4_MABX_P.Gain3_Gain_l *
9227 L4_MABX_B.VelocityVector[i];
9228 }
9229
9230 /* End of Gain: '<S338>/Gain3' */
9231
9232 /* RelationalOperator: '<S355>/Compare' incorporates:
9233 * Constant: '<S355>/Constant'
9234 */
9235 for (i = 0; i < 33; i++) {
9236 L4_MABX_B.Compare_nk[i] = (L4_MABX_B.Vehicle_speed_vector_kph[i] <
9237 L4_MABX_P.Constant_Value_n);
9238 }
9239
9240 /* End of RelationalOperator: '<S355>/Compare' */
9241
9242 /* Logic: '<S350>/Logical Operator' */
9243 zcEvent = L4_MABX_B.Compare_nk[0];
9244 for (i = 0; i < 32; i++) {
9245 zcEvent = (zcEvent || L4_MABX_B.Compare_nk[i + 1]);
9246 }
9247
9248 L4_MABX_B.f_vspd_output_less_than_zero = zcEvent;
9249
9250 /* End of Logic: '<S350>/Logical Operator' */
9251
9252 /* MinMax: '<S350>/MinMax3' */
9253 PositionFinalLimited = L4_MABX_B.Vehicle_speed_vector_kph[0];
9254 for (i = 0; i < 32; i++) {
9255 Time56 = L4_MABX_B.Vehicle_speed_vector_kph[i + 1];
9256 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9257 PositionFinalLimited = Time56;
9258 }
9259 }
9260
9261 L4_MABX_B.MinMax3 = PositionFinalLimited;
9262
9263 /* End of MinMax: '<S350>/MinMax3' */
9264
9265 /* UnitDelay: '<S354>/Unit_Delay' */
9266 L4_MABX_B.Unit_Delay_f = L4_MABX_DW.Unit_Delay_DSTATE_bwg;
9267
9268 /* Outputs for Atomic SubSystem: '<S354>/If_Then_Else' */
9269 L4_MABX_If_Then_Else_g(L4_MABX_B.LogicalOperator1_ja, L4_MABX_B.Saturation5,
9270 L4_MABX_B.Unit_Delay_f, &L4_MABX_B.If_Then_Else_og);
9271
9272 /* End of Outputs for SubSystem: '<S354>/If_Then_Else' */
9273
9274 /* MinMax: '<S350>/MinMax5' */
9275 DeltaTime = L4_MABX_B.If_Then_Else_og.Switch;
9276 PositionFinalLimited = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
9277 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9278 PositionFinalLimited = DeltaTime;
9279 }
9280
9281 L4_MABX_B.MinMax5 = PositionFinalLimited;
9282
9283 /* End of MinMax: '<S350>/MinMax5' */
9284
9285 /* Sum: '<S350>/Subtract' */
9286 L4_MABX_B.Subtract_a = L4_MABX_B.MinMax3 - L4_MABX_B.MinMax5;
9287
9288 /* Abs: '<S350>/Abs' */
9289 L4_MABX_B.Abs_m = fabs(L4_MABX_B.Subtract_a);
9290
9291 /* RelationalOperator: '<S350>/Relational Operator' incorporates:
9292 * Constant: '<S350>/MIN_VSPD_DELTA_THRESHOLD_KPH_APV'
9293 */
9294 L4_MABX_B.RelationalOperator_fg = (L4_MABX_B.Abs_m >
9295 L4_MABX_P.MIN_VSPD_DELTA_THRESHOLD_KPH_AP);
9296
9297 /* Logic: '<S356>/Logical Operator3' incorporates:
9298 * Constant: '<S350>/CPV'
9299 */
9300 L4_MABX_B.LogicalOperator3_os = !L4_MABX_P.CPV_Value_a;
9301
9302 /* UnitDelay: '<S356>/Unit_Delay' */
9303 L4_MABX_B.Unit_Delay_ag = L4_MABX_DW.Unit_Delay_DSTATE_ko;
9304
9305 /* Logic: '<S356>/Logical Operator' */
9306 L4_MABX_B.LogicalOperator_ob = (L4_MABX_B.LogicalOperator3_os &&
9307 L4_MABX_B.Unit_Delay_ag);
9308
9309 /* Logic: '<S356>/Logical Operator1' */
9310 L4_MABX_B.LogicalOperator1_p = (L4_MABX_B.LogicalOperator1_ja ||
9311 L4_MABX_B.LogicalOperator_ob);
9312
9313 /* Logic: '<S350>/Logical Operator2' */
9314 L4_MABX_B.f_vspd_min_delta_greater_than_t = (L4_MABX_B.RelationalOperator_fg &&
9315 L4_MABX_B.LogicalOperator1_p);
9316
9317 /* MinMax: '<S350>/MinMax4' */
9318 PositionFinalLimited = L4_MABX_B.Vehicle_speed_vector_kph[0];
9319 for (i = 0; i < 32; i++) {
9320 Time56 = L4_MABX_B.Vehicle_speed_vector_kph[i + 1];
9321 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9322 PositionFinalLimited = Time56;
9323 }
9324 }
9325
9326 L4_MABX_B.MinMax4 = PositionFinalLimited;
9327
9328 /* End of MinMax: '<S350>/MinMax4' */
9329
9330 /* MinMax: '<S350>/MinMax6' */
9331 DeltaTime = L4_MABX_B.If_Then_Else_og.Switch;
9332 PositionFinalLimited = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
9333 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9334 PositionFinalLimited = DeltaTime;
9335 }
9336
9337 L4_MABX_B.MinMax6_j = PositionFinalLimited;
9338
9339 /* End of MinMax: '<S350>/MinMax6' */
9340
9341 /* Sum: '<S350>/Subtract1' */
9342 L4_MABX_B.Subtract1_ca = L4_MABX_B.MinMax4 - L4_MABX_B.MinMax6_j;
9343
9344 /* Abs: '<S350>/Abs1' */
9345 L4_MABX_B.Abs1_h5 = fabs(L4_MABX_B.Subtract1_ca);
9346
9347 /* RelationalOperator: '<S350>/Relational Operator1' incorporates:
9348 * Constant: '<S350>/MAX_VSPD_DELTA_THRESHOLD_KPH_APV'
9349 */
9350 L4_MABX_B.RelationalOperator1_g4 = (L4_MABX_B.Abs1_h5 >
9351 L4_MABX_P.MAX_VSPD_DELTA_THRESHOLD_KPH_AP);
9352
9353 /* Logic: '<S350>/Logical Operator1' */
9354 L4_MABX_B.f_vspd_max_delta_greater_than_t = (L4_MABX_B.RelationalOperator1_g4 &&
9355 L4_MABX_B.LogicalOperator1_p);
9356
9357 /* MinMax: '<S350>/MinMax8' */
9358 PositionFinalLimited = L4_MABX_B.AccelerationVector[0];
9359 for (i = 0; i < 32; i++) {
9360 Time56 = L4_MABX_B.AccelerationVector[i + 1];
9361 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9362 PositionFinalLimited = Time56;
9363 }
9364 }
9365
9366 L4_MABX_B.MinMax8 = PositionFinalLimited;
9367
9368 /* End of MinMax: '<S350>/MinMax8' */
9369
9370 /* RelationalOperator: '<S350>/Relational Operator2' incorporates:
9371 * Constant: '<S350>/ACCEL_RATE_ABS_MAX_THRESHOLD_MS2_APV'
9372 */
9373 L4_MABX_B.f_accel_rate_greater_than_thres = (L4_MABX_B.MinMax8 >
9374 L4_MABX_P.ACCEL_RATE_ABS_MAX_THRESHOLD_MS);
9375
9376 /* MinMax: '<S350>/MinMax7' */
9377 PositionFinalLimited = L4_MABX_B.AccelerationVector[0];
9378 for (i = 0; i < 32; i++) {
9379 Time56 = L4_MABX_B.AccelerationVector[i + 1];
9380 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9381 PositionFinalLimited = Time56;
9382 }
9383 }
9384
9385 L4_MABX_B.MinMax7 = PositionFinalLimited;
9386
9387 /* End of MinMax: '<S350>/MinMax7' */
9388
9389 /* RelationalOperator: '<S350>/Relational Operator3' incorporates:
9390 * Constant: '<S350>/ACCEL_RATE_ABS_MIN_THRESHOLD_MS2_APV'
9391 */
9392 L4_MABX_B.f_decel_rate_greater_than_thres = (L4_MABX_B.MinMax7 <
9393 L4_MABX_P.ACCEL_RATE_ABS_MIN_THRESHOLD_MS);
9394
9395 /* MinMax: '<S350>/MinMax10' */
9396 PositionFinalLimited = L4_MABX_B.JerkVector[0];
9397 for (i = 0; i < 32; i++) {
9398 Time56 = L4_MABX_B.JerkVector[i + 1];
9399 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9400 PositionFinalLimited = Time56;
9401 }
9402 }
9403
9404 L4_MABX_B.MinMax10 = PositionFinalLimited;
9405
9406 /* End of MinMax: '<S350>/MinMax10' */
9407
9408 /* RelationalOperator: '<S350>/Relational Operator4' incorporates:
9409 * Constant: '<S350>/JERK_RATE_ABS_MAX_THRESHOLD_MS3_APV'
9410 */
9411 L4_MABX_B.f_jerk_rate_greater_than_thresh = (L4_MABX_B.MinMax10 >
9412 L4_MABX_P.JERK_RATE_ABS_MAX_THRESHOLD_MS3);
9413
9414 /* MinMax: '<S350>/MinMax9' */
9415 PositionFinalLimited = L4_MABX_B.JerkVector[0];
9416 for (i = 0; i < 32; i++) {
9417 Time56 = L4_MABX_B.JerkVector[i + 1];
9418 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9419 PositionFinalLimited = Time56;
9420 }
9421 }
9422
9423 L4_MABX_B.MinMax9 = PositionFinalLimited;
9424
9425 /* End of MinMax: '<S350>/MinMax9' */
9426
9427 /* RelationalOperator: '<S350>/Relational Operator5' incorporates:
9428 * Constant: '<S350>/JERK_RATE_ABS_MIN_THRESHOLD_MS3_APV'
9429 */
9430 L4_MABX_B.f_jerk_rate_greater_than_thre_n = (L4_MABX_B.MinMax9 <
9431 L4_MABX_P.JERK_RATE_ABS_MIN_THRESHOLD_MS3);
9432
9433 /* Sum: '<S350>/Subtract2' */
9434 L4_MABX_B.Subtract2 = L4_MABX_B.Distance_to_achieve_speed_targe -
9435 L4_MABX_B.PositionVector[32];
9436
9437 /* Abs: '<S350>/Abs2' */
9438 L4_MABX_B.Abs2 = fabs(L4_MABX_B.Subtract2);
9439
9440 /* RelationalOperator: '<S350>/Relational Operator6' incorporates:
9441 * Constant: '<S350>/MAX_DISTANCE_DELTA_THRESHOLD_M_APV'
9442 */
9443 L4_MABX_B.RelationalOperator6_i = (L4_MABX_B.Abs2 >
9444 L4_MABX_P.MAX_DISTANCE_DELTA_THRESHOLD_M_);
9445
9446 /* Logic: '<S350>/Logical Operator3' */
9447 L4_MABX_B.f_distance_max_delta_greater_th = (L4_MABX_B.RelationalOperator6_i &&
9448 L4_MABX_B.LogicalOperator1_p);
9449
9450 /* Logic: '<S350>/Logical Operator4' */
9451 L4_MABX_B.F_Inhibit_sigmoid_vector_shapin =
9452 (L4_MABX_B.f_vspd_output_less_than_zero ||
9453 L4_MABX_B.f_vspd_min_delta_greater_than_t ||
9454 L4_MABX_B.f_vspd_max_delta_greater_than_t ||
9455 L4_MABX_B.f_accel_rate_greater_than_thres ||
9456 L4_MABX_B.f_decel_rate_greater_than_thres ||
9457 L4_MABX_B.f_jerk_rate_greater_than_thresh ||
9458 L4_MABX_B.f_jerk_rate_greater_than_thre_n ||
9459 L4_MABX_B.f_distance_max_delta_greater_th);
9460
9461 /* Logic: '<S81>/Logical Operator' */
9462 L4_MABX_B.LogicalOperator_n = !L4_MABX_B.F_Inhibit_sigmoid_vector_shapin;
9463
9464 /* Logic: '<S81>/Logical Operator2' */
9465 L4_MABX_B.LogicalOperator2_ft = (L4_MABX_B.Compare_jr &&
9466 L4_MABX_B.LogicalOperator_n);
9467
9468 /* RelationalOperator: '<S351>/Relational Operator3' incorporates:
9469 * Constant: '<S351>/CPV1'
9470 */
9471 L4_MABX_B.RelationalOperator3_k = (L4_MABX_B.Saturation5 <
9472 L4_MABX_P.CPV1_Value_i);
9473
9474 /* RelationalOperator: '<S351>/Relational Operator1' incorporates:
9475 * Constant: '<S338>/MIN_VSPD_SIGMOID_INITIAL_KPH_APV'
9476 */
9477 L4_MABX_B.RelationalOperator1_hj = (L4_MABX_B.If_Then_Else_og.Switch <
9478 L4_MABX_P.MIN_VSPD_SIGMOID_INITIAL_KPH_AP);
9479
9480 /* Logic: '<S351>/Logical Operator' */
9481 L4_MABX_B.LogicalOperator_da = (L4_MABX_B.RelationalOperator3_k ||
9482 L4_MABX_B.RelationalOperator1_hj);
9483
9484 /* RelationalOperator: '<S351>/Relational Operator2' incorporates:
9485 * Constant: '<S338>/MIN_VSPD_SIGMOID_FINAL_KPH_APV'
9486 */
9487 L4_MABX_B.RelationalOperator2_g = (L4_MABX_B.VSPD_TARGET_KPH_APV_gu <
9488 L4_MABX_P.MIN_VSPD_SIGMOID_FINAL_KPH_APV_);
9489
9490 /* Logic: '<S351>/Logical Operator2' */
9491 L4_MABX_B.F_set_max_distance_accumulated = (L4_MABX_B.LogicalOperator_da &&
9492 L4_MABX_B.RelationalOperator2_g);
9493
9494 /* UnitDelay: '<S365>/FixPt Unit Delay2' */
9495 L4_MABX_B.FixPtUnitDelay2_oi = L4_MABX_DW.FixPtUnitDelay2_DSTATE_f;
9496
9497 /* Logic: '<S365>/FixPt Logical Operator' */
9498 L4_MABX_B.FixPtLogicalOperator = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
9499 (L4_MABX_B.FixPtUnitDelay2_oi != 0));
9500
9501 /* UnitDelay: '<S365>/FixPt Unit Delay1' */
9502 L4_MABX_B.Xold_p = L4_MABX_DW.FixPtUnitDelay1_DSTATE_li;
9503
9504 /* Switch: '<S365>/Init' incorporates:
9505 * Constant: '<S360>/CPV'
9506 */
9507 if (L4_MABX_B.FixPtLogicalOperator != 0) {
9508 L4_MABX_B.Init_hz = L4_MABX_P.CPV_Value_h;
9509 } else {
9510 L4_MABX_B.Init_hz = L4_MABX_B.Xold_p;
9511 }
9512
9513 /* End of Switch: '<S365>/Init' */
9514
9515 /* Gain: '<S351>/Gain1' */
9516 L4_MABX_B.Gain1_c = L4_MABX_P.Gain1_Gain_k * L4_MABX_B.Saturation5;
9517
9518 /* DigitalClock: '<S363>/Digital Clock' */
9519 L4_MABX_B.DigitalClock_f = L4_MABX_M->Timing.t[0];
9520
9521 /* UnitDelay: '<S363>/Unit_Delay' */
9522 L4_MABX_B.Unit_Delay_ew = L4_MABX_DW.Unit_Delay_DSTATE_p;
9523
9524 /* Sum: '<S363>/Subtract' */
9525 L4_MABX_B.Subtract_b = L4_MABX_B.DigitalClock_f - L4_MABX_B.Unit_Delay_ew;
9526
9527 /* Product: '<S360>/Product1' incorporates:
9528 * Constant: '<S359>/CPV1'
9529 */
9530 L4_MABX_B.Product1_a = L4_MABX_P.CPV1_Value_e * L4_MABX_B.Gain1_c *
9531 L4_MABX_B.Subtract_b;
9532
9533 /* Sum: '<S360>/Add' */
9534 L4_MABX_B.Add_h = L4_MABX_B.Init_hz + L4_MABX_B.Product1_a;
9535
9536 /* MinMax: '<S360>/MinMax' */
9537 DeltaTime = L4_MABX_B.Distance_to_achieve_speed_targe;
9538 PositionFinalLimited = L4_MABX_B.Add_h;
9539 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9540 PositionFinalLimited = DeltaTime;
9541 }
9542
9543 L4_MABX_B.MinMax_a = PositionFinalLimited;
9544
9545 /* End of MinMax: '<S360>/MinMax' */
9546
9547 /* Outputs for Atomic SubSystem: '<S360>/If_Then_Else' */
9548 L4_MABX_If_Then_Else_g(L4_MABX_B.F_set_max_distance_accumulated,
9549 L4_MABX_B.Distance_to_achieve_speed_targe, L4_MABX_B.MinMax_a,
9550 &L4_MABX_B.If_Then_Else_gf);
9551
9552 /* End of Outputs for SubSystem: '<S360>/If_Then_Else' */
9553
9554 /* RelationalOperator: '<S351>/Relational Operator' */
9555 L4_MABX_B.RelationalOperator_l = (L4_MABX_B.If_Then_Else_gf.Switch ==
9556 L4_MABX_B.Distance_to_achieve_speed_targe);
9557
9558 /* S-Function (sfix_look1_dyn): '<S351>/Lookup Table Dynamic' */
9559 /* Dynamic Look-Up Table Block: '<S351>/Lookup Table Dynamic'
9560 * Input0 Data Type: Floating Point real_T
9561 * Input1 Data Type: Floating Point real_T
9562 * Input2 Data Type: Floating Point real_T
9563 * Output0 Data Type: Floating Point real_T
9564 * Lookup Method: Linear_Endpoint
9565 *
9566 */
9567 LookUp_real_T_real_T( &(L4_MABX_B.LookupTableDynamic),
9568 &L4_MABX_B.Vehicle_speed_vector_kph[0],
9569 L4_MABX_B.If_Then_Else_gf.Switch,
9570 &L4_MABX_B.PositionVector[0], 32U);
9571
9572 /* Outputs for Atomic SubSystem: '<S351>/If_Then_Else' */
9573 L4_MABX_If_Then_Else_g(L4_MABX_B.RelationalOperator_l,
9574 L4_MABX_B.VSPD_TARGET_KPH_APV_gu, L4_MABX_B.LookupTableDynamic,
9575 &L4_MABX_B.If_Then_Else_j);
9576
9577 /* End of Outputs for SubSystem: '<S351>/If_Then_Else' */
9578
9579 /* UnitDelay: '<S343>/Delay Input1' */
9580 L4_MABX_B.Uk1_k[0] = L4_MABX_DW.DelayInput1_DSTATE_f[0];
9581 L4_MABX_B.Uk1_k[1] = L4_MABX_DW.DelayInput1_DSTATE_f[1];
9582
9583 /* RelationalOperator: '<S343>/FixPt Relational Operator' */
9584 L4_MABX_B.FixPtRelationalOperator_p[0] =
9585 (L4_MABX_B.Distance_to_achieve_speed_targe != L4_MABX_B.Uk1_k[0]);
9586 L4_MABX_B.FixPtRelationalOperator_p[1] = (L4_MABX_B.Vehicle_speed_target_o !=
9587 L4_MABX_B.Uk1_k[1]);
9588
9589 /* Logic: '<S337>/Logical Operator' */
9590 L4_MABX_B.LogicalOperator_gb = (L4_MABX_B.FixPtRelationalOperator_p[0] ||
9591 L4_MABX_B.FixPtRelationalOperator_p[1]);
9592
9593 /* UnitDelay: '<S345>/Unit_Delay' */
9594 L4_MABX_B.Unit_Delay_ls = L4_MABX_DW.Unit_Delay_DSTATE_la;
9595
9596 /* Logic: '<S345>/Logical Operator1' */
9597 L4_MABX_B.LogicalOperator1_lp = (L4_MABX_B.LogicalOperator_gb ||
9598 L4_MABX_B.Unit_Delay_ls);
9599
9600 /* UnitDelay: '<S349>/FixPt Unit Delay2' */
9601 L4_MABX_B.FixPtUnitDelay2_n = L4_MABX_DW.FixPtUnitDelay2_DSTATE_cn;
9602
9603 /* UnitDelay: '<S349>/FixPt Unit Delay1' */
9604 L4_MABX_B.Xold_o5 = L4_MABX_DW.FixPtUnitDelay1_DSTATE_ej;
9605
9606 /* Switch: '<S349>/Init' */
9607 if (L4_MABX_B.FixPtUnitDelay2_n != 0) {
9608 L4_MABX_B.Init_p = L4_MABX_B.Vehicle_speed_target_o;
9609 } else {
9610 L4_MABX_B.Init_p = L4_MABX_B.Xold_o5;
9611 }
9612
9613 /* End of Switch: '<S349>/Init' */
9614
9615 /* UnitDelay: '<S344>/Unit_Delay' */
9616 L4_MABX_B.Vehicle_speed_target_c = L4_MABX_DW.Unit_Delay_1_DSTATE_j;
9617 L4_MABX_B.Vehicle_speed = L4_MABX_DW.Unit_Delay_2_DSTATE_e;
9618 L4_MABX_B.Distance_m = L4_MABX_DW.Unit_Delay_3_DSTATE_j;
9619
9620 /* Outputs for Atomic SubSystem: '<S344>/If_Then_Else' */
9621 L4_MABX_If_Then_Else_m(L4_MABX_B.LogicalOperator_gb,
9622 L4_MABX_B.Vehicle_speed_target_o, L4_MABX_B.SFunction1_o1_m1,
9623 L4_MABX_B.Distance_to_achieve_speed_targe, L4_MABX_B.Vehicle_speed_target_c,
9624 L4_MABX_B.Vehicle_speed, L4_MABX_B.Distance_m, &L4_MABX_B.If_Then_Else_mm);
9625
9626 /* End of Outputs for SubSystem: '<S344>/If_Then_Else' */
9627
9628 /* Sum: '<S344>/Subtract' */
9629 L4_MABX_B.err = L4_MABX_B.If_Then_Else_mm.Vehicle_speed -
9630 L4_MABX_B.If_Then_Else_mm.Vehicle_speed_target;
9631
9632 /* Abs: '<S344>/Abs2' */
9633 L4_MABX_B.err_abs = fabs(L4_MABX_B.err);
9634
9635 /* Gain: '<S344>/Gain2' */
9636 L4_MABX_B.Gain2_k = L4_MABX_P.Gain2_Gain_l *
9637 L4_MABX_B.If_Then_Else_mm.Vehicle_speed;
9638
9639 /* Saturate: '<S344>/Saturation4' */
9640 DeltaTime = L4_MABX_B.Gain2_k;
9641 Time56 = L4_MABX_P.Saturation4_LowerSat_e;
9642 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat_a;
9643 if (DeltaTime > PositionFinalLimited) {
9644 L4_MABX_B.Saturation4 = PositionFinalLimited;
9645 } else if (DeltaTime < Time56) {
9646 L4_MABX_B.Saturation4 = Time56;
9647 } else {
9648 L4_MABX_B.Saturation4 = DeltaTime;
9649 }
9650
9651 /* End of Saturate: '<S344>/Saturation4' */
9652
9653 /* Product: '<S344>/Divide2' */
9654 L4_MABX_B.time_to_target_vspd_secs = L4_MABX_B.If_Then_Else_mm.Distance_m /
9655 L4_MABX_B.Saturation4;
9656
9657 /* DigitalClock: '<S342>/Digital Clock' */
9658 L4_MABX_B.DigitalClock_p = L4_MABX_M->Timing.t[0];
9659
9660 /* UnitDelay: '<S342>/Unit_Delay' */
9661 L4_MABX_B.Unit_Delay_b = L4_MABX_DW.Unit_Delay_DSTATE_f;
9662
9663 /* Sum: '<S342>/Subtract' */
9664 L4_MABX_B.Subtract_g = L4_MABX_B.DigitalClock_p - L4_MABX_B.Unit_Delay_b;
9665
9666 /* MinMax: '<S344>/MinMax3' */
9667 DeltaTime = L4_MABX_B.time_to_target_vspd_secs;
9668 PositionFinalLimited = L4_MABX_B.Subtract_g;
9669 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9670 PositionFinalLimited = DeltaTime;
9671 }
9672
9673 L4_MABX_B.MinMax3_n = PositionFinalLimited;
9674
9675 /* End of MinMax: '<S344>/MinMax3' */
9676
9677 /* Saturate: '<S344>/Saturation1' */
9678 DeltaTime = L4_MABX_B.MinMax3_n;
9679 Time56 = L4_MABX_P.Saturation1_LowerSat_o;
9680 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_j;
9681 if (DeltaTime > PositionFinalLimited) {
9682 L4_MABX_B.Saturation1_e = PositionFinalLimited;
9683 } else if (DeltaTime < Time56) {
9684 L4_MABX_B.Saturation1_e = Time56;
9685 } else {
9686 L4_MABX_B.Saturation1_e = DeltaTime;
9687 }
9688
9689 /* End of Saturate: '<S344>/Saturation1' */
9690
9691 /* Product: '<S344>/Divide' */
9692 L4_MABX_B.Divide_e = L4_MABX_B.err_abs / L4_MABX_B.Saturation1_e;
9693
9694 /* Abs: '<S345>/Abs' */
9695 L4_MABX_B.Abs_ma = fabs(L4_MABX_B.Divide_e);
9696
9697 /* Product: '<S345>/Product1' */
9698 L4_MABX_B.Product1_iv = L4_MABX_B.Abs_ma * L4_MABX_B.Subtract_g;
9699
9700 /* Sum: '<S345>/Add1' */
9701 L4_MABX_B.Add1_bf = L4_MABX_B.Init_p + L4_MABX_B.Product1_iv;
9702
9703 /* MinMax: '<S345>/MinMax2' */
9704 DeltaTime = L4_MABX_B.Vehicle_speed_target_o;
9705 PositionFinalLimited = L4_MABX_B.Add1_bf;
9706 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9707 PositionFinalLimited = DeltaTime;
9708 }
9709
9710 L4_MABX_B.MinMax2_c = PositionFinalLimited;
9711
9712 /* End of MinMax: '<S345>/MinMax2' */
9713
9714 /* Abs: '<S345>/Abs1' */
9715 L4_MABX_B.Abs1_f = fabs(L4_MABX_B.Divide_e);
9716
9717 /* Product: '<S345>/Product2' */
9718 L4_MABX_B.Product2_m = L4_MABX_B.Subtract_g * L4_MABX_B.Abs1_f;
9719
9720 /* Sum: '<S345>/Subtract1' */
9721 L4_MABX_B.Subtract1_h2 = L4_MABX_B.Init_p - L4_MABX_B.Product2_m;
9722
9723 /* MinMax: '<S345>/MinMax1' */
9724 DeltaTime = L4_MABX_B.MinMax2_c;
9725 PositionFinalLimited = L4_MABX_B.Subtract1_h2;
9726 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9727 PositionFinalLimited = DeltaTime;
9728 }
9729
9730 L4_MABX_B.MinMax1_p = PositionFinalLimited;
9731
9732 /* End of MinMax: '<S345>/MinMax1' */
9733
9734 /* Outputs for Atomic SubSystem: '<S345>/If_Then_Else' */
9735 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_lp, L4_MABX_B.SFunction1_o1_m1,
9736 L4_MABX_B.MinMax1_p, &L4_MABX_B.If_Then_Else_pz);
9737
9738 /* End of Outputs for SubSystem: '<S345>/If_Then_Else' */
9739
9740 /* Outputs for Atomic SubSystem: '<S81>/If_Then_Else' */
9741 L4_MABX_If_Then_Else_g(L4_MABX_B.LogicalOperator2_ft,
9742 L4_MABX_B.If_Then_Else_j.Switch, L4_MABX_B.If_Then_Else_pz.Switch,
9743 &L4_MABX_B.If_Then_Else_ji);
9744
9745 /* End of Outputs for SubSystem: '<S81>/If_Then_Else' */
9746
9747 /* MinMax: '<S81>/MinMax' */
9748 DeltaTime = L4_MABX_B.If_Then_Else_m4.Switch;
9749 PositionFinalLimited = L4_MABX_B.If_Then_Else_bf.Switch;
9750 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9751 PositionFinalLimited = DeltaTime;
9752 }
9753
9754 Time56 = L4_MABX_B.Vehicle_speed_abs_max;
9755 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9756 PositionFinalLimited = Time56;
9757 }
9758
9759 Time56 = L4_MABX_B.If_Then_Else_ji.Switch;
9760 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9761 PositionFinalLimited = Time56;
9762 }
9763
9764 L4_MABX_B.MinMax_ob = PositionFinalLimited;
9765
9766 /* End of MinMax: '<S81>/MinMax' */
9767
9768 /* Saturate: '<S81>/Saturation8' */
9769 DeltaTime = L4_MABX_B.MinMax_ob;
9770 Time56 = L4_MABX_P.Saturation8_LowerSat;
9771 PositionFinalLimited = L4_MABX_P.Saturation8_UpperSat;
9772 if (DeltaTime > PositionFinalLimited) {
9773 L4_MABX_B.Vehicle_speed_target_n = PositionFinalLimited;
9774 } else if (DeltaTime < Time56) {
9775 L4_MABX_B.Vehicle_speed_target_n = Time56;
9776 } else {
9777 L4_MABX_B.Vehicle_speed_target_n = DeltaTime;
9778 }
9779
9780 /* End of Saturate: '<S81>/Saturation8' */
9781
9782 /* Lookup_n-D: '<S194>/2D_Lookup_Table' */
9783 L4_MABX_B.uD_Lookup_Table_l = look2_binlcapw(0.0,
9784 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_DECEL_RATE_STEP_MPV,
9785 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_PRESS_KPA_DATA_MPV,
9786 L4_MABX_P.uD_Lookup_Table_maxIndex_e, 16U);
9787
9788 /* Product: '<S100>/Divide' */
9789 L4_MABX_B.Divide_f = L4_MABX_B.uD_Lookup_Table_l /
9790 L4_MABX_B.Primary_brake_circuit_pressur_n;
9791
9792 /* Gain: '<S100>/Gain1' */
9793 L4_MABX_B.Gain1_l = L4_MABX_P.Gain1_Gain_o * L4_MABX_B.Divide_f;
9794
9795 /* Saturate: '<S100>/Saturation1' */
9796 DeltaTime = L4_MABX_B.Gain1_l;
9797 Time56 = L4_MABX_P.Saturation1_LowerSat_n;
9798 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_l;
9799 if (DeltaTime > PositionFinalLimited) {
9800 L4_MABX_B.Brake_appl_percent_to_achieve_d = PositionFinalLimited;
9801 } else if (DeltaTime < Time56) {
9802 L4_MABX_B.Brake_appl_percent_to_achieve_d = Time56;
9803 } else {
9804 L4_MABX_B.Brake_appl_percent_to_achieve_d = DeltaTime;
9805 }
9806
9807 /* End of Saturate: '<S100>/Saturation1' */
9808
9809 /* Saturate: '<S81>/Saturation2' incorporates:
9810 * Constant: '<S81>/ACCEL_LIM_MS2_APV'
9811 */
9812 DeltaTime = L4_MABX_P.ACCEL_LIM_MS2_APV_Value;
9813 Time56 = L4_MABX_P.Saturation2_LowerSat_l;
9814 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat_a;
9815 if (DeltaTime > PositionFinalLimited) {
9816 L4_MABX_B.ACCEL_LIM_MS2_APV_b = PositionFinalLimited;
9817 } else if (DeltaTime < Time56) {
9818 L4_MABX_B.ACCEL_LIM_MS2_APV_b = Time56;
9819 } else {
9820 L4_MABX_B.ACCEL_LIM_MS2_APV_b = DeltaTime;
9821 }
9822
9823 /* End of Saturate: '<S81>/Saturation2' */
9824
9825 /* Lookup_n-D: '<S195>/2D_Lookup_Table' */
9826 L4_MABX_B.uD_Lookup_Table_i = look2_binlcapw(L4_MABX_B.ACCEL_LIM_MS2_APV_b,
9827 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_DECEL_RATE_STEP_MPV,
9828 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_PRESS_KPA_DATA_MPV,
9829 L4_MABX_P.uD_Lookup_Table_maxIndex_n, 16U);
9830
9831 /* Product: '<S100>/Divide1' */
9832 L4_MABX_B.Divide1_f = L4_MABX_B.uD_Lookup_Table_i /
9833 L4_MABX_B.Primary_brake_circuit_pressur_n;
9834
9835 /* Gain: '<S100>/Gain2' */
9836 L4_MABX_B.Gain2_e = L4_MABX_P.Gain2_Gain_b * L4_MABX_B.Divide1_f;
9837
9838 /* Saturate: '<S100>/Saturation2' */
9839 DeltaTime = L4_MABX_B.Gain2_e;
9840 Time56 = L4_MABX_P.Saturation2_LowerSat_o;
9841 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat_b;
9842 if (DeltaTime > PositionFinalLimited) {
9843 L4_MABX_B.Brake_appl_percent_for_maximum_ = PositionFinalLimited;
9844 } else if (DeltaTime < Time56) {
9845 L4_MABX_B.Brake_appl_percent_for_maximum_ = Time56;
9846 } else {
9847 L4_MABX_B.Brake_appl_percent_for_maximum_ = DeltaTime;
9848 }
9849
9850 /* End of Saturate: '<S100>/Saturation2' */
9851
9852 /* DataTypeConversion: '<S77>/Data Type Conversion2' */
9853 L4_MABX_B.DataTypeConversion2_l = L4_MABX_B.SPN1760_GrossCombinationVehicle;
9854
9855 /* Outputs for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' incorporates:
9856 * EnablePort: '<S97>/Enable'
9857 */
9858 if (L4_MABX_B.F_Brake_control_active) {
9859 if (!L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
9860 /* InitializeConditions for UnitDelay: '<S140>/Unit_Delay' */
9861 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_P.Unit_Delay_InitialCondition_f;
9862
9863 /* InitializeConditions for UnitDelay: '<S147>/Unit_Delay' */
9864 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Unit_Delay_InitialCondition_jb;
9865
9866 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay1' */
9867 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Unit_Delay1_InitialCondition_p;
9868
9869 /* InitializeConditions for UnitDelay: '<S168>/Unit_Delay' */
9870 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Unit_Delay_InitialCondition_lq;
9871
9872 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay2' */
9873 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o =
9874 L4_MABX_P.FixPtUnitDelay2_InitialCondit_p;
9875
9876 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay1' */
9877 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 =
9878 L4_MABX_P.FixPtUnitDelay1_InitialCondit_b;
9879
9880 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay2' */
9881 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_P.Unit_Delay2_InitialCondition_b;
9882
9883 /* InitializeConditions for UnitDelay: '<S139>/Unit_Delay' */
9884 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_P.Unit_Delay_InitialCondition_h;
9885 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = true;
9886 }
9887
9888 /* Lookup_n-D: '<S141>/1D_Lookup_Table' */
9889 L4_MABX_B.uD_Lookup_Table_f = look1_binlcapw(L4_MABX_B.DataTypeConversion2_l,
9890 BRK_DEM_MASS_STEP_MPV, BRK_DEM_KP_DATA_MPV, 7U);
9891
9892 /* Lookup_n-D: '<S142>/1D_Lookup_Table' */
9893 L4_MABX_B.uD_Lookup_Table_p = look1_binlcapw(L4_MABX_B.DataTypeConversion2_l,
9894 BRK_DEM_MASS_STEP_MPV, BRK_DEM_KI_DATA_MPV, 7U);
9895
9896 /* Lookup_n-D: '<S143>/1D_Lookup_Table' */
9897 L4_MABX_B.uD_Lookup_Table_o5 = look1_binlcapw
9898 (L4_MABX_B.DataTypeConversion2_l, BRK_DEM_MASS_STEP_MPV,
9899 BRK_DEM_KD_DATA_MPV, 7U);
9900
9901 /* Abs: '<S144>/Abs' */
9902 L4_MABX_B.Abs_k = fabs(L4_MABX_B.uD_Lookup_Table_p);
9903
9904 /* Abs: '<S144>/Abs1' */
9905 L4_MABX_B.Abs1_eg = fabs(L4_MABX_B.uD_Lookup_Table_o5);
9906
9907 /* DigitalClock: '<S140>/Digital Clock' */
9908 L4_MABX_B.DigitalClock_n = L4_MABX_M->Timing.t[0];
9909
9910 /* UnitDelay: '<S140>/Unit_Delay' */
9911 L4_MABX_B.Unit_Delay_ko = L4_MABX_DW.Unit_Delay_DSTATE_eu;
9912
9913 /* Sum: '<S140>/Subtract' */
9914 L4_MABX_B.Subtract_ac = L4_MABX_B.DigitalClock_n - L4_MABX_B.Unit_Delay_ko;
9915
9916 /* UnitDelay: '<S147>/Unit_Delay' */
9917 L4_MABX_B.Unit_Delay_m1 = L4_MABX_DW.Unit_Delay_DSTATE_n;
9918
9919 /* Logic: '<S147>/Logical Operator1' incorporates:
9920 * Constant: '<S97>/CPV2'
9921 */
9922 L4_MABX_B.LogicalOperator1_pf = (L4_MABX_B.Unit_Delay_m1 ||
9923 L4_MABX_P.CPV2_Value_a);
9924
9925 /* UnitDelay: '<S167>/Unit_Delay1' */
9926 L4_MABX_B.Unit_Delay1_jk = L4_MABX_DW.Unit_Delay1_DSTATE_f;
9927
9928 /* Logic: '<S167>/Logical Operator' */
9929 L4_MABX_B.LogicalOperator_lo = (L4_MABX_B.LogicalOperator1_pf ||
9930 L4_MABX_B.Unit_Delay1_jk);
9931
9932 /* UnitDelay: '<S168>/Unit_Delay' */
9933 L4_MABX_B.Unit_Delay_li = L4_MABX_DW.Unit_Delay_DSTATE_g4;
9934
9935 /* Logic: '<S168>/Logical Operator1' */
9936 L4_MABX_B.LogicalOperator1_oy = (L4_MABX_B.LogicalOperator1_pf ||
9937 L4_MABX_B.Unit_Delay_li);
9938
9939 /* UnitDelay: '<S172>/FixPt Unit Delay2' */
9940 L4_MABX_B.FixPtUnitDelay2_mf = L4_MABX_DW.FixPtUnitDelay2_DSTATE_o;
9941
9942 /* UnitDelay: '<S172>/FixPt Unit Delay1' */
9943 L4_MABX_B.Xold_c = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2;
9944
9945 /* Switch: '<S172>/Init' */
9946 if (L4_MABX_B.FixPtUnitDelay2_mf != 0) {
9947 L4_MABX_B.Init_c = L4_MABX_B.Vehicle_speed_target_n;
9948 } else {
9949 L4_MABX_B.Init_c = L4_MABX_B.Xold_c;
9950 }
9951
9952 /* End of Switch: '<S172>/Init' */
9953
9954 /* Abs: '<S168>/Abs' incorporates:
9955 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_INC_APV'
9956 */
9957 L4_MABX_B.Abs_o = fabs(L4_MABX_P.BRK_DECEL_DEM_SLEW_INC_APV_Valu);
9958
9959 /* Product: '<S168>/Product1' */
9960 L4_MABX_B.Product1_hy = L4_MABX_B.Abs_o * L4_MABX_B.Subtract_ac;
9961
9962 /* Sum: '<S168>/Add1' */
9963 L4_MABX_B.Add1_o = L4_MABX_B.Init_c + L4_MABX_B.Product1_hy;
9964
9965 /* MinMax: '<S168>/MinMax2' */
9966 DeltaTime = L4_MABX_B.Vehicle_speed_target_n;
9967 PositionFinalLimited = L4_MABX_B.Add1_o;
9968 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9969 PositionFinalLimited = DeltaTime;
9970 }
9971
9972 L4_MABX_B.MinMax2_p = PositionFinalLimited;
9973
9974 /* End of MinMax: '<S168>/MinMax2' */
9975
9976 /* Abs: '<S168>/Abs1' incorporates:
9977 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_DEC_APV'
9978 */
9979 L4_MABX_B.Abs1_g = fabs(L4_MABX_P.BRK_DECEL_DEM_SLEW_DEC_APV_Valu);
9980
9981 /* Product: '<S168>/Product2' */
9982 L4_MABX_B.Product2_fh = L4_MABX_B.Subtract_ac * L4_MABX_B.Abs1_g;
9983
9984 /* Sum: '<S168>/Subtract1' */
9985 L4_MABX_B.Subtract1_f = L4_MABX_B.Init_c - L4_MABX_B.Product2_fh;
9986
9987 /* MinMax: '<S168>/MinMax1' */
9988 DeltaTime = L4_MABX_B.MinMax2_p;
9989 PositionFinalLimited = L4_MABX_B.Subtract1_f;
9990 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9991 PositionFinalLimited = DeltaTime;
9992 }
9993
9994 L4_MABX_B.MinMax1_hl = PositionFinalLimited;
9995
9996 /* End of MinMax: '<S168>/MinMax1' */
9997
9998 /* Outputs for Atomic SubSystem: '<S168>/If_Then_Else' */
9999 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_oy,
10000 L4_MABX_B.DataTypeConversion5_oo, L4_MABX_B.MinMax1_hl,
10001 &L4_MABX_B.If_Then_Else_iy);
10002
10003 /* End of Outputs for SubSystem: '<S168>/If_Then_Else' */
10004
10005 /* Sum: '<S145>/Subtract' */
10006 L4_MABX_B.Subtract_jh = L4_MABX_B.If_Then_Else_iy.Switch -
10007 L4_MABX_B.DataTypeConversion5_oo;
10008
10009 /* MinMax: '<S167>/MinMax1' incorporates:
10010 * Constant: '<S97>/BRK_DECEL_DEM_T_FILT_CTRL_ERROR_APV'
10011 */
10012 DeltaTime = L4_MABX_B.Subtract_ac;
10013 PositionFinalLimited = L4_MABX_P.BRK_DECEL_DEM_T_FILT_CTRL_ERROR;
10014 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10015 PositionFinalLimited = DeltaTime;
10016 }
10017
10018 L4_MABX_B.MinMax1_jg = PositionFinalLimited;
10019
10020 /* End of MinMax: '<S167>/MinMax1' */
10021
10022 /* Saturate: '<S167>/Saturation' */
10023 DeltaTime = L4_MABX_B.MinMax1_jg;
10024 Time56 = L4_MABX_P.Saturation_LowerSat_g;
10025 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_o;
10026 if (DeltaTime > PositionFinalLimited) {
10027 L4_MABX_B.Saturation_m = PositionFinalLimited;
10028 } else if (DeltaTime < Time56) {
10029 L4_MABX_B.Saturation_m = Time56;
10030 } else {
10031 L4_MABX_B.Saturation_m = DeltaTime;
10032 }
10033
10034 /* End of Saturate: '<S167>/Saturation' */
10035
10036 /* Product: '<S167>/Divide' */
10037 L4_MABX_B.Divide_af = L4_MABX_B.Subtract_ac / L4_MABX_B.Saturation_m;
10038
10039 /* Product: '<S167>/Product2' */
10040 L4_MABX_B.Product2_ce = L4_MABX_B.Subtract_jh * L4_MABX_B.Divide_af;
10041
10042 /* Sum: '<S167>/Subtract1' incorporates:
10043 * Constant: '<S167>/Constant1'
10044 */
10045 L4_MABX_B.Subtract1_cr = L4_MABX_P.Constant1_Value_o - L4_MABX_B.Divide_af;
10046
10047 /* UnitDelay: '<S167>/Unit_Delay2' */
10048 L4_MABX_B.Unit_Delay2_a = L4_MABX_DW.Unit_Delay2_DSTATE_c;
10049
10050 /* Product: '<S167>/Product1' */
10051 L4_MABX_B.Product1_ch = L4_MABX_B.Subtract1_cr * L4_MABX_B.Unit_Delay2_a;
10052
10053 /* Sum: '<S167>/Add1' */
10054 L4_MABX_B.Add1_hl = L4_MABX_B.Product2_ce + L4_MABX_B.Product1_ch;
10055
10056 /* Outputs for Atomic SubSystem: '<S167>/If_Then_Else' */
10057 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_lo, L4_MABX_B.Subtract_jh,
10058 L4_MABX_B.Add1_hl, &L4_MABX_B.If_Then_Else_bc);
10059
10060 /* End of Outputs for SubSystem: '<S167>/If_Then_Else' */
10061
10062 /* RelationalOperator: '<S152>/Compare' incorporates:
10063 * Constant: '<S152>/Constant'
10064 */
10065 L4_MABX_B.Compare_ni = (L4_MABX_B.Abs1_eg >
10066 L4_MABX_P.CompareToConstant1_const_m);
10067
10068 /* Outputs for Enabled SubSystem: '<S144>/Calculate_D_term' */
10069
10070 /* Constant: '<S97>/BRK_DECEL_DEM_T_FILT_D_APV' */
10071 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_ni, L4_MABX_B.uD_Lookup_Table_o5,
10072 L4_MABX_B.Subtract_ac, L4_MABX_B.LogicalOperator1_pf,
10073 L4_MABX_B.If_Then_Else_bc.Switch,
10074 L4_MABX_P.BRK_DECEL_DEM_T_FILT_D_APV_Valu, &L4_MABX_B.Calculate_D_term_p,
10075 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
10076
10077 /* End of Outputs for SubSystem: '<S144>/Calculate_D_term' */
10078
10079 /* Product: '<S150>/Product' */
10080 L4_MABX_B.Product_f = L4_MABX_B.uD_Lookup_Table_f *
10081 L4_MABX_B.If_Then_Else_bc.Switch;
10082
10083 /* UnitDelay: '<S139>/Unit_Delay' */
10084 L4_MABX_B.Unit_Delay_fg = L4_MABX_DW.Unit_Delay_DSTATE_h;
10085
10086 /* RelationalOperator: '<S151>/Compare' incorporates:
10087 * Constant: '<S151>/Constant'
10088 */
10089 L4_MABX_B.Compare_dl = (L4_MABX_B.Abs_k >
10090 L4_MABX_P.CompareToConstant_const_c);
10091
10092 /* Outputs for Enabled SubSystem: '<S144>/Calculate_I_term' */
10093
10094 /* Constant: '<S97>/BRK_DECEL_DEM_AW_COND_INT_APV' incorporates:
10095 * Constant: '<S97>/BRK_DECEL_DEM_AW_HYSTERESIS_APV'
10096 * Constant: '<S97>/CPV1'
10097 */
10098 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_dl, L4_MABX_B.Product_f,
10099 L4_MABX_B.uD_Lookup_Table_p, L4_MABX_B.Brake_appl_percent,
10100 L4_MABX_B.If_Then_Else_bc.Switch, L4_MABX_B.LogicalOperator1_pf,
10101 L4_MABX_B.Subtract_ac, L4_MABX_B.Brake_appl_percent_to_achieve_d,
10102 L4_MABX_P.BRK_DECEL_DEM_AW_COND_INT_APV_V,
10103 L4_MABX_P.BRK_DECEL_DEM_AW_HYSTERESIS_APV, L4_MABX_P.CPV1_Value_no,
10104 L4_MABX_B.Unit_Delay_fg, &L4_MABX_B.Calculate_I_term_e,
10105 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
10106
10107 /* End of Outputs for SubSystem: '<S144>/Calculate_I_term' */
10108
10109 /* RelationalOperator: '<S170>/min_relop' incorporates:
10110 * Constant: '<S170>/min_val'
10111 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_INC_APV'
10112 */
10113 L4_MABX_B.min_relop_a = (L4_MABX_P.CheckStaticLowerBound_min_d <=
10114 L4_MABX_P.BRK_DECEL_DEM_SLEW_INC_APV_Valu);
10115
10116 /* Assertion: '<S170>/Assertion' */
10117 utAssert(L4_MABX_B.min_relop_a);
10118
10119 /* Sum: '<S146>/Add' */
10120 L4_MABX_B.Add_mh = ((L4_MABX_B.Product_f +
10121 L4_MABX_B.Calculate_I_term_e.If_Then_Else.Switch) +
10122 L4_MABX_B.Calculate_D_term_p.Subtract) +
10123 L4_MABX_B.Brake_appl_percent_to_achieve_d;
10124
10125 /* RelationalOperator: '<S173>/Relational Operator1' */
10126 L4_MABX_B.RelationalOperator1_k = (L4_MABX_B.Add_mh >=
10127 L4_MABX_B.Brake_appl_percent_for_maximum_);
10128
10129 /* RelationalOperator: '<S173>/Relational Operator' incorporates:
10130 * Constant: '<S97>/CPV'
10131 */
10132 L4_MABX_B.RelationalOperator_m1 = (L4_MABX_B.Add_mh <= L4_MABX_P.CPV_Value_i);
10133
10134 /* Outputs for Atomic SubSystem: '<S173>/If_Then_Else1' */
10135
10136 /* Constant: '<S97>/CPV' */
10137 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_m1, L4_MABX_P.CPV_Value_i,
10138 L4_MABX_B.Add_mh, &L4_MABX_B.If_Then_Else1_g);
10139
10140 /* End of Outputs for SubSystem: '<S173>/If_Then_Else1' */
10141
10142 /* Outputs for Atomic SubSystem: '<S173>/If_Then_Else' */
10143 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_k,
10144 L4_MABX_B.Brake_appl_percent_for_maximum_,
10145 L4_MABX_B.If_Then_Else1_g.Switch,
10146 &L4_MABX_B.If_Then_Else_fo);
10147
10148 /* End of Outputs for SubSystem: '<S173>/If_Then_Else' */
10149 } else {
10150 if (L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
10151 /* Disable for Enabled SubSystem: '<S144>/Calculate_D_term' */
10152 if (L4_MABX_DW.Calculate_D_term_p.Calculate_D_term_MODE) {
10153 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term_p,
10154 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
10155 }
10156
10157 /* End of Disable for SubSystem: '<S144>/Calculate_D_term' */
10158
10159 /* Disable for Enabled SubSystem: '<S144>/Calculate_I_term' */
10160 if (L4_MABX_DW.Calculate_I_term_e.Calculate_I_term_MODE) {
10161 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term_e,
10162 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
10163 }
10164
10165 /* End of Disable for SubSystem: '<S144>/Calculate_I_term' */
10166
10167 /* Disable for Outport: '<S97>/PID_output' */
10168 L4_MABX_B.If_Then_Else_fo.Switch = L4_MABX_P.PID_output_Y0_p;
10169 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = false;
10170 }
10171 }
10172
10173 /* End of Outputs for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
10174
10175 /* RelationalOperator: '<S98>/Relational Operator2' incorporates:
10176 * Constant: '<S98>/CPV2'
10177 */
10178 L4_MABX_B.F_Driver_braking = (L4_MABX_B.XPRControlMode ==
10179 L4_MABX_P.CPV2_Value_hm);
10180
10181 /* Logic: '<S98>/Logical Operator2' */
10182 L4_MABX_B.F_Operator_brake_appl = (L4_MABX_B.If_Then_Else_la.Switch &&
10183 L4_MABX_B.F_Driver_braking);
10184
10185 /* RelationalOperator: '<S98>/Relational Operator5' incorporates:
10186 * Constant: '<S98>/BENDIX_2C2_BRAKE_APPL_THRESHOLD_KPA_APV'
10187 */
10188 L4_MABX_B.RelationalOperator5[0] = (L4_MABX_B.Bendix_2C2_Primary_brake_circui >
10189 L4_MABX_P.BENDIX_2C2_BRAKE_APPL_THRESHOLD);
10190 L4_MABX_B.RelationalOperator5[1] = (L4_MABX_B.Bendix_2C2_Secondary_brake_circ >
10191 L4_MABX_P.BENDIX_2C2_BRAKE_APPL_THRESHOLD);
10192
10193 /* Logic: '<S98>/Logical Operator6' */
10194 L4_MABX_B.F_Bendix_2C2_service_brake_pres = (L4_MABX_B.RelationalOperator5[0] ||
10195 L4_MABX_B.RelationalOperator5[1]);
10196
10197 /* RelationalOperator: '<S98>/Relational Operator' incorporates:
10198 * Constant: '<S98>/CPV'
10199 */
10200 L4_MABX_B.F_Bendix_2C2_braking = (L4_MABX_B.XPRControlMode ==
10201 L4_MABX_P.CPV_Value_e);
10202
10203 /* Logic: '<S98>/Logical Operator7' */
10204 L4_MABX_B.F_ADAS_brake_appl = (L4_MABX_B.If_Then_Else_la.Switch &&
10205 L4_MABX_B.F_Bendix_2C2_braking && L4_MABX_B.F_Bendix_2C2_service_brake_pres);
10206
10207 /* RelationalOperator: '<S98>/Relational Operator1' incorporates:
10208 * Constant: '<S98>/CPV1'
10209 */
10210 L4_MABX_B.F_ADAS_brake_error = (L4_MABX_B.XPRErrorState !=
10211 L4_MABX_P.CPV1_Value_i5);
10212
10213 /* Lookup_n-D: '<S193>/2D_Lookup_Table' */
10214 L4_MABX_B.uD_Lookup_Table_le = look2_binlcapw
10215 (L4_MABX_B.brake_system_avg_appl_pressure_,
10216 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_PRESS_KPA_STEP_MPV,
10217 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_DECEL_RATE_DATA_MPV,
10218 L4_MABX_P.uD_Lookup_Table_maxIndex_m, 16U);
10219
10220 /* Saturate: '<S100>/Saturation4' */
10221 DeltaTime = L4_MABX_B.uD_Lookup_Table_le;
10222 Time56 = L4_MABX_P.Saturation4_LowerSat_a;
10223 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat_f;
10224 if (DeltaTime > PositionFinalLimited) {
10225 L4_MABX_B.Decel_rate_calculated_ms2 = PositionFinalLimited;
10226 } else if (DeltaTime < Time56) {
10227 L4_MABX_B.Decel_rate_calculated_ms2 = Time56;
10228 } else {
10229 L4_MABX_B.Decel_rate_calculated_ms2 = DeltaTime;
10230 }
10231
10232 /* End of Saturate: '<S100>/Saturation4' */
10233
10234 /* DataTypeConversion: '<S101>/Data Type Conversion' */
10235 L4_MABX_B.DataTypeConversion_pp = L4_MABX_B.SFunction1_o1_fb;
10236
10237 /* DataTypeConversion: '<S101>/Data Type Conversion1' */
10238 L4_MABX_B.DataTypeConversion1_k = L4_MABX_B.SFunction1_o2_fs;
10239
10240 /* Sum: '<S101>/Add' */
10241 L4_MABX_B.Add_m = L4_MABX_B.DataTypeConversion_pp +
10242 L4_MABX_B.DataTypeConversion1_k;
10243
10244 /* UnitDelay: '<S101>/Unit_Delay' */
10245 L4_MABX_B.Unit_Delay_dy = L4_MABX_DW.Unit_Delay_DSTATE_eu4;
10246
10247 /* UnitDelay: '<S197>/Unit_Delay1' */
10248 L4_MABX_B.Unit_Delay1_k = L4_MABX_DW.Unit_Delay1_DSTATE_d;
10249
10250 /* Logic: '<S197>/Logical Operator' */
10251 L4_MABX_B.LogicalOperator_fc = (L4_MABX_B.Unit_Delay_dy ||
10252 L4_MABX_B.Unit_Delay1_k);
10253
10254 /* Gain: '<S101>/Gain' */
10255 L4_MABX_B.Gain_j = L4_MABX_P.Gain_Gain_f * L4_MABX_B.Add_m;
10256
10257 /* MinMax: '<S197>/MinMax1' incorporates:
10258 * Constant: '<S101>/Constant10'
10259 * Constant: '<S101>/VSPD_CAN_HRW_0B_FILT_T_APV'
10260 */
10261 DeltaTime = L4_MABX_P.Constant10_Value;
10262 PositionFinalLimited = L4_MABX_P.VSPD_CAN_HRW_0B_FILT_T_APV_Valu;
10263 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10264 PositionFinalLimited = DeltaTime;
10265 }
10266
10267 L4_MABX_B.MinMax1_i = PositionFinalLimited;
10268
10269 /* End of MinMax: '<S197>/MinMax1' */
10270
10271 /* Saturate: '<S197>/Saturation' */
10272 DeltaTime = L4_MABX_B.MinMax1_i;
10273 Time56 = L4_MABX_P.Saturation_LowerSat_b;
10274 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_l;
10275 if (DeltaTime > PositionFinalLimited) {
10276 L4_MABX_B.Saturation_n = PositionFinalLimited;
10277 } else if (DeltaTime < Time56) {
10278 L4_MABX_B.Saturation_n = Time56;
10279 } else {
10280 L4_MABX_B.Saturation_n = DeltaTime;
10281 }
10282
10283 /* End of Saturate: '<S197>/Saturation' */
10284
10285 /* Product: '<S197>/Divide' incorporates:
10286 * Constant: '<S101>/Constant10'
10287 */
10288 L4_MABX_B.Divide_a = L4_MABX_P.Constant10_Value / L4_MABX_B.Saturation_n;
10289
10290 /* Product: '<S197>/Product2' */
10291 L4_MABX_B.Product2_o = L4_MABX_B.Gain_j * L4_MABX_B.Divide_a;
10292
10293 /* Sum: '<S197>/Subtract1' incorporates:
10294 * Constant: '<S197>/Constant1'
10295 */
10296 L4_MABX_B.Subtract1_e = L4_MABX_P.Constant1_Value_od - L4_MABX_B.Divide_a;
10297
10298 /* UnitDelay: '<S197>/Unit_Delay2' */
10299 L4_MABX_B.Unit_Delay2_g = L4_MABX_DW.Unit_Delay2_DSTATE_e;
10300
10301 /* Product: '<S197>/Product1' */
10302 L4_MABX_B.Product1_o = L4_MABX_B.Subtract1_e * L4_MABX_B.Unit_Delay2_g;
10303
10304 /* Sum: '<S197>/Add1' */
10305 L4_MABX_B.Add1_n1 = L4_MABX_B.Product2_o + L4_MABX_B.Product1_o;
10306
10307 /* Outputs for Atomic SubSystem: '<S197>/If_Then_Else' */
10308 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_fc, L4_MABX_B.Gain_j,
10309 L4_MABX_B.Add1_n1, &L4_MABX_B.If_Then_Else_ga);
10310
10311 /* End of Outputs for SubSystem: '<S197>/If_Then_Else' */
10312
10313 /* SampleTimeMath: '<S196>/TSamp'
10314 *
10315 * About '<S196>/TSamp':
10316 * y = u * K where K = 1 / ( w * Ts )
10317 */
10318 L4_MABX_B.TSamp = L4_MABX_B.If_Then_Else_ga.Switch * L4_MABX_P.TSamp_WtEt;
10319
10320 /* UnitDelay: '<S196>/UD' */
10321 L4_MABX_B.Uk1_b = L4_MABX_DW.UD_DSTATE;
10322
10323 /* Sum: '<S196>/Diff' */
10324 L4_MABX_B.Diff = L4_MABX_B.TSamp - L4_MABX_B.Uk1_b;
10325
10326 /* MinMax: '<S77>/MinMax' */
10327 DeltaTime = L4_MABX_B.If_Then_Else_nj.Switch;
10328 PositionFinalLimited = L4_MABX_B.If_Then_Else_fo.Switch;
10329 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10330 PositionFinalLimited = DeltaTime;
10331 }
10332
10333 L4_MABX_B.BrakingPID_Y_percent = PositionFinalLimited;
10334
10335 /* End of MinMax: '<S77>/MinMax' */
10336
10337 /* Gain: '<S77>/Gain' */
10338 L4_MABX_B.BrakingPID_Y_k = L4_MABX_P.Gain_Gain_no *
10339 L4_MABX_B.BrakingPID_Y_percent;
10340
10341 /* DataTypeConversion: '<S79>/Data Type Conversion' */
10342 L4_MABX_B.DataTypeConversion_de = AutonomousEnabled;
10343
10344 /* DataTypeConversion: '<S79>/Data Type Conversion2' */
10345 L4_MABX_B.DataTypeConversion2_lf = (real32_T)L4_MABX_B.SFunction1_o1_m1;
10346
10347 /* DataTypeConversion: '<S79>/Data Type Conversion1' */
10348 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o8_o);
10349 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
10350 PositionFinalLimited = 0.0;
10351 } else {
10352 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
10353 }
10354
10355 L4_MABX_B.DataTypeConversion1_f1 = (uint8_T)(PositionFinalLimited < 0.0 ?
10356 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
10357 (uint8_T)PositionFinalLimited);
10358
10359 /* End of DataTypeConversion: '<S79>/Data Type Conversion1' */
10360
10361 /* Chart: '<S79>/Chart' incorporates:
10362 * Constant: '<S79>/Constant'
10363 */
10364 /* Gateway: STATE_CONTROL_10ms/Chart */
10365 /* During: STATE_CONTROL_10ms/Chart */
10366 if (L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ == 0U) {
10367 /* Entry: STATE_CONTROL_10ms/Chart */
10368 L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ = 1U;
10369
10370 /* Entry Internal: STATE_CONTROL_10ms/Chart */
10371 /* Transition: '<S201>:2' */
10372 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_Init;
10373
10374 /* Entry 'Init': '<S201>:1' */
10375 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_INIT;
10376 } else {
10377 switch (L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA) {
10378 case L4_MABX_IN_Init:
10379 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_INIT;
10380
10381 /* During 'Init': '<S201>:1' */
10382 if (!L4_MABX_P.Constant_Value_cp) {
10383 /* Transition: '<S201>:9' */
10384 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorDisabled;
10385
10386 /* Entry 'OperatorDisabled': '<S201>:3' */
10387 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10388 }
10389 break;
10390
10391 case L4_MABX_IN_OperatorDisabled:
10392 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10393
10394 /* During 'OperatorDisabled': '<S201>:3' */
10395 if (L4_MABX_B.DataTypeConversion_de) {
10396 /* Transition: '<S201>:11' */
10397 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorEnabled;
10398
10399 /* Entry 'OperatorEnabled': '<S201>:10' */
10400 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_AUTO_CTRL_ENABLED;
10401
10402 /* Entry Internal 'OperatorEnabled': '<S201>:10' */
10403 /* Transition: '<S201>:16' */
10404 /* Entry 'AutoControlEnabled': '<S201>:13' */
10405 /* Entry Internal 'AutoControlEnabled': '<S201>:13' */
10406 /* Transition: '<S201>:15' */
10407 /* Entry 'init': '<S201>:14' */
10408 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_INIT;
10409 }
10410 break;
10411
10412 default:
10413 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_AUTO_CTRL_ENABLED;
10414
10415 /* During 'OperatorEnabled': '<S201>:10' */
10416 if ((!L4_MABX_B.DataTypeConversion_de) || L4_MABX_P.Constant_Value_cp) {
10417 /* Transition: '<S201>:12' */
10418 /* Exit Internal 'OperatorEnabled': '<S201>:10' */
10419 /* Exit Internal 'AutoControlEnabled': '<S201>:13' */
10420 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorDisabled;
10421
10422 /* Entry 'OperatorDisabled': '<S201>:3' */
10423 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10424 } else {
10425 /* During 'AutoControlEnabled': '<S201>:13' */
10426 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_INIT;
10427
10428 /* During 'init': '<S201>:14' */
10429 }
10430 break;
10431 }
10432 }
10433
10434 /* End of Chart: '<S79>/Chart' */
10435
10436 /* Outputs for Enabled SubSystem: '<S79>/Engine_speed_target' incorporates:
10437 * EnablePort: '<S204>/Enable'
10438 */
10439 if (L4_MABX_B.LogicalOperator_ke) {
10440 if (!L4_MABX_DW.Engine_speed_target_MODE) {
10441 L4_MABX_DW.Engine_speed_target_MODE = true;
10442 }
10443
10444 /* Gain: '<S204>/KPH_TO_MPH' */
10445 L4_MABX_B.KPH_TO_MPH = L4_MABX_P.KPH_TO_MPH_Gain *
10446 L4_MABX_B.VSPD_TARGET_KPH_APV_g;
10447
10448 /* MinMax: '<S204>/MinMax' incorporates:
10449 * Constant: '<S204>/Constant2'
10450 * Constant: '<S204>/TIRE_DIAM_INCHES_APV'
10451 */
10452 DeltaTime = L4_MABX_P.TIRE_DIAM_INCHES_APV_Value;
10453 PositionFinalLimited = L4_MABX_P.Constant2_Value_m;
10454 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10455 PositionFinalLimited = DeltaTime;
10456 }
10457
10458 L4_MABX_B.MinMax_dl = PositionFinalLimited;
10459
10460 /* End of MinMax: '<S204>/MinMax' */
10461
10462 /* Product: '<S204>/Divide' incorporates:
10463 * Constant: '<S204>/CONVERSION_CONSTANT_CPV'
10464 * Constant: '<S204>/REAR_AXLE_RATIO_VALUE_APV'
10465 */
10466 L4_MABX_B.Divide_p = L4_MABX_B.KPH_TO_MPH *
10467 L4_MABX_B.SPN526_TransActualGearRatio *
10468 L4_MABX_P.REAR_AXLE_RATIO_VALUE_APV_Value *
10469 L4_MABX_P.CONVERSION_CONSTANT_CPV_Value / L4_MABX_B.MinMax_dl;
10470
10471 /* MinMax: '<S204>/MinMax1' incorporates:
10472 * Constant: '<S204>/Constant1'
10473 */
10474 DeltaTime = L4_MABX_B.Divide_p;
10475 PositionFinalLimited = L4_MABX_P.Constant1_Value_f;
10476 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10477 PositionFinalLimited = DeltaTime;
10478 }
10479
10480 L4_MABX_B.MinMax1_n = PositionFinalLimited;
10481
10482 /* End of MinMax: '<S204>/MinMax1' */
10483 } else {
10484 if (L4_MABX_DW.Engine_speed_target_MODE) {
10485 /* Disable for Outport: '<S204>/Out1' */
10486 L4_MABX_B.MinMax1_n = L4_MABX_P.Out1_Y0;
10487 L4_MABX_DW.Engine_speed_target_MODE = false;
10488 }
10489 }
10490
10491 /* End of Outputs for SubSystem: '<S79>/Engine_speed_target' */
10492
10493 /* RelationalOperator: '<S205>/Relational Operator1' incorporates:
10494 * Constant: '<S205>/CPV3'
10495 */
10496 L4_MABX_B.RelationalOperator1_c = (L4_MABX_B.SFunction1_o1_m1 <=
10497 L4_MABX_P.CPV3_Value_n);
10498
10499 /* RelationalOperator: '<S205>/Relational Operator3' incorporates:
10500 * Constant: '<S205>/CPV1'
10501 */
10502 L4_MABX_B.RelationalOperator3_g = (L4_MABX_B.SPN524_TransSelectedGear ==
10503 L4_MABX_P.CPV1_Value_n);
10504
10505 /* RelationalOperator: '<S205>/Relational Operator2' incorporates:
10506 * Constant: '<S205>/CPV2'
10507 */
10508 L4_MABX_B.RelationalOperator2_f = (L4_MABX_B.SPN523_TransCurrentGear ==
10509 L4_MABX_P.CPV2_Value_h);
10510
10511 /* RelationalOperator: '<S205>/Relational Operator4' incorporates:
10512 * Constant: '<S205>/CPV5'
10513 */
10514 L4_MABX_B.RelationalOperator4_o = (L4_MABX_B.SFunction1_o2_mkm ==
10515 L4_MABX_P.CPV5_Value_g);
10516
10517 /* Logic: '<S205>/Logical Operator' */
10518 L4_MABX_B.F_Ignition_sw_off_conditions_me = (L4_MABX_B.RelationalOperator1_c &&
10519 L4_MABX_B.RelationalOperator3_g && L4_MABX_B.RelationalOperator2_f &&
10520 L4_MABX_B.RelationalOperator4_o);
10521
10522 /* RelationalOperator: '<S205>/Relational Operator' incorporates:
10523 * Constant: '<S205>/IGN_SW_VOLTAGE_THRESHOLD_APV'
10524 */
10525 L4_MABX_B.F_Ignition_sw_on = (L4_MABX_B.IgnitionKeySwitch_voltage >=
10526 L4_MABX_P.IGN_SW_VOLTAGE_THRESHOLD_APV_Va);
10527
10528 /* SignalConversion: '<S212>/TmpSignal ConversionAt SFunction Inport3' incorporates:
10529 * Chart: '<S205>/Relay_control_state_machine'
10530 * Constant: '<S205>/IGN_RELAY_ON_DELAY_SECS_APV'
10531 * Constant: '<S205>/INVERTER_RELAY_ON_DELAY_SECS_APV'
10532 * Constant: '<S205>/MABX_RELAY_ON_DELAY_SECS_APV'
10533 * Constant: '<S205>/SENSOR_RELAY_ON_DELAY_SECS_APV'
10534 */
10535 L4_MABX_B.TmpSignalConversionAtSFunctionI[0] =
10536 L4_MABX_P.IGN_RELAY_ON_DELAY_SECS_APV_Val;
10537 L4_MABX_B.TmpSignalConversionAtSFunctionI[1] =
10538 L4_MABX_P.INVERTER_RELAY_ON_DELAY_SECS_AP;
10539 L4_MABX_B.TmpSignalConversionAtSFunctionI[2] =
10540 L4_MABX_P.MABX_RELAY_ON_DELAY_SECS_APV_Va;
10541 L4_MABX_B.TmpSignalConversionAtSFunctionI[3] =
10542 L4_MABX_P.SENSOR_RELAY_ON_DELAY_SECS_APV_;
10543
10544 /* SignalConversion: '<S212>/TmpSignal ConversionAt SFunction Inport4' incorporates:
10545 * Chart: '<S205>/Relay_control_state_machine'
10546 * Constant: '<S205>/IGN_RELAY_OFF_DELAY_SECS_APV'
10547 * Constant: '<S205>/INVERTER_RELAY_OFF_DELAY_SECS_APV'
10548 * Constant: '<S205>/MABX_RELAY_OFF_DELAY_SECS_APV'
10549 * Constant: '<S205>/SENSOR_RELAY_OFF_DELAY_SECS_APV'
10550 */
10551 L4_MABX_B.TmpSignalConversionAtSFunctio_k[0] =
10552 L4_MABX_P.IGN_RELAY_OFF_DELAY_SECS_APV_Va;
10553 L4_MABX_B.TmpSignalConversionAtSFunctio_k[1] =
10554 L4_MABX_P.INVERTER_RELAY_OFF_DELAY_SECS_A;
10555 L4_MABX_B.TmpSignalConversionAtSFunctio_k[2] =
10556 L4_MABX_P.MABX_RELAY_OFF_DELAY_SECS_APV_V;
10557 L4_MABX_B.TmpSignalConversionAtSFunctio_k[3] =
10558 L4_MABX_P.SENSOR_RELAY_OFF_DELAY_SECS_APV;
10559
10560 /* Chart: '<S205>/Relay_control_state_machine' */
10561 if (L4_MABX_DW.temporalCounter_i1 < MAX_uint32_T) {
10562 L4_MABX_DW.temporalCounter_i1++;
10563 }
10564
10565 /* Gateway: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10566 /* During: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10567 if (L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S == 0U) {
10568 /* Entry: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10569 L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S = 1U;
10570
10571 /* Entry Internal: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10572 /* Transition: '<S212>:13' */
10573 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_INITIAL;
10574 L4_MABX_enter_atomic_INITIAL();
10575 } else {
10576 switch (L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT) {
10577 case L4_MABX_IN_INITIAL:
10578 L4_MABX_B.F_Ignition_relay_command_i = false;
10579 L4_MABX_B.F_Inverter_relay_command_p = false;
10580 L4_MABX_B.F_MABX_relay_command_n = false;
10581 L4_MABX_B.F_Sensor_relay_command_k = false;
10582
10583 /* During 'INITIAL': '<S212>:12' */
10584 if (L4_MABX_B.F_Ignition_sw_on) {
10585 /* Transition: '<S212>:17' */
10586 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_POWER_UP_ROUTINE;
10587
10588 /* Entry Internal 'POWER_UP_ROUTINE': '<S212>:16' */
10589 /* Transition: '<S212>:64' */
10590 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_WAIT;
10591 L4_MABX_DW.temporalCounter_i1 = 0U;
10592 }
10593 break;
10594
10595 case L4_MABX_IN_POWER_DOWN_ROUTINE:
10596 /* During 'POWER_DOWN_ROUTINE': '<S212>:30' */
10597 switch (L4_MABX_DW.is_POWER_DOWN_ROUTINE) {
10598 case L4_MABX_IN_IGN_RELAY_UNLATCH:
10599 L4_MABX_B.F_Ignition_relay_command_i = false;
10600
10601 /* During 'IGN_RELAY_UNLATCH': '<S212>:29' */
10602 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10603 (L4_MABX_DW.INVERTER_RELAY_OFF_DELAY_SECS_A * 100.0)) {
10604 /* Transition: '<S212>:23' */
10605 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_INV_RELAY_UNLATCH;
10606 L4_MABX_DW.temporalCounter_i1 = 0U;
10607
10608 /* Entry 'INV_RELAY_UNLATCH': '<S212>:28' */
10609 L4_MABX_B.F_Inverter_relay_command_p = false;
10610 }
10611 break;
10612
10613 case L4_MABX_IN_INV_RELAY_UNLATCH:
10614 L4_MABX_B.F_Inverter_relay_command_p = false;
10615
10616 /* During 'INV_RELAY_UNLATCH': '<S212>:28' */
10617 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10618 (L4_MABX_DW.SENSOR_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10619 /* Transition: '<S212>:22' */
10620 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_SENSOR_RELAY_UNLATCH;
10621 L4_MABX_DW.temporalCounter_i1 = 0U;
10622
10623 /* Entry 'SENSOR_RELAY_UNLATCH': '<S212>:25' */
10624 L4_MABX_B.F_Sensor_relay_command_k = false;
10625 }
10626 break;
10627
10628 case L4_MABX_IN_MABX_RELAY_UNLATCH:
10629 L4_MABX_B.F_MABX_relay_command_n = false;
10630
10631 /* During 'MABX_RELAY_UNLATCH': '<S212>:27' */
10632 /* Transition: '<S212>:45' */
10633 /* Transition: '<S212>:46' */
10634 /* Transition: '<S212>:47' */
10635 /* Transition: '<S212>:48' */
10636 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
10637 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_INITIAL;
10638 L4_MABX_enter_atomic_INITIAL();
10639 break;
10640
10641 case L4_MABX_IN_SENSOR_RELAY_UNLATCH:
10642 L4_MABX_B.F_Sensor_relay_command_k = false;
10643
10644 /* During 'SENSOR_RELAY_UNLATCH': '<S212>:25' */
10645 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10646 (L4_MABX_DW.MABX_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10647 /* Transition: '<S212>:26' */
10648 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_MABX_RELAY_UNLATCH;
10649
10650 /* Entry 'MABX_RELAY_UNLATCH': '<S212>:27' */
10651 L4_MABX_B.F_MABX_relay_command_n = false;
10652 }
10653 break;
10654
10655 default:
10656 /* During 'WAIT': '<S212>:65' */
10657 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10658 (L4_MABX_DW.IGN_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10659 /* Transition: '<S212>:55' */
10660 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_IGN_RELAY_UNLATCH;
10661 L4_MABX_DW.temporalCounter_i1 = 0U;
10662
10663 /* Entry 'IGN_RELAY_UNLATCH': '<S212>:29' */
10664 L4_MABX_B.F_Ignition_relay_command_i = false;
10665 }
10666 break;
10667 }
10668 break;
10669
10670 default:
10671 /* During 'POWER_UP_ROUTINE': '<S212>:16' */
10672 zcEvent = ((!L4_MABX_B.F_Ignition_sw_on) &&
10673 L4_MABX_B.F_Ignition_sw_off_conditions_me);
10674 if (zcEvent) {
10675 /* Transition: '<S212>:31' */
10676 /* Exit Internal 'POWER_UP_ROUTINE': '<S212>:16' */
10677 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
10678 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT =
10679 L4_MABX_IN_POWER_DOWN_ROUTINE;
10680
10681 /* Entry Internal 'POWER_DOWN_ROUTINE': '<S212>:30' */
10682 /* Transition: '<S212>:66' */
10683 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_WAIT;
10684 L4_MABX_DW.temporalCounter_i1 = 0U;
10685 } else {
10686 switch (L4_MABX_DW.is_POWER_UP_ROUTINE) {
10687 case L4_MABX_IN_IGN_RELAY_LATCH:
10688 L4_MABX_B.F_Ignition_relay_command_i = true;
10689
10690 /* During 'IGN_RELAY_LATCH': '<S212>:20' */
10691 break;
10692
10693 case L4_MABX_IN_INV_RELAY_LATCH:
10694 L4_MABX_B.F_Inverter_relay_command_p = true;
10695
10696 /* During 'INV_RELAY_LATCH': '<S212>:19' */
10697 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10698 (L4_MABX_DW.IGN_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10699 /* Transition: '<S212>:21' */
10700 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_IGN_RELAY_LATCH;
10701
10702 /* Entry 'IGN_RELAY_LATCH': '<S212>:20' */
10703 L4_MABX_B.F_Ignition_relay_command_i = true;
10704 }
10705 break;
10706
10707 case L4_MABX_IN_MABX_RELAY_LATCH:
10708 L4_MABX_B.F_MABX_relay_command_n = true;
10709
10710 /* During 'MABX_RELAY_LATCH': '<S212>:10' */
10711 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10712 (L4_MABX_DW.SENSOR_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10713 /* Transition: '<S212>:15' */
10714 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_SENSOR_RELAY_LATCH;
10715 L4_MABX_DW.temporalCounter_i1 = 0U;
10716
10717 /* Entry 'SENSOR_RELAY_LATCH': '<S212>:14' */
10718 L4_MABX_B.F_Sensor_relay_command_k = true;
10719 }
10720 break;
10721
10722 case L4_MABX_IN_SENSOR_RELAY_LATCH:
10723 L4_MABX_B.F_Sensor_relay_command_k = true;
10724
10725 /* During 'SENSOR_RELAY_LATCH': '<S212>:14' */
10726 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10727 (L4_MABX_DW.INVERTER_RELAY_ON_DELAY_SECS_AP * 100.0)) {
10728 /* Transition: '<S212>:18' */
10729 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_INV_RELAY_LATCH;
10730 L4_MABX_DW.temporalCounter_i1 = 0U;
10731
10732 /* Entry 'INV_RELAY_LATCH': '<S212>:19' */
10733 L4_MABX_B.F_Inverter_relay_command_p = true;
10734 }
10735 break;
10736
10737 default:
10738 /* During 'WAIT': '<S212>:63' */
10739 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10740 (L4_MABX_DW.MABX_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10741 /* Transition: '<S212>:11' */
10742 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_MABX_RELAY_LATCH;
10743 L4_MABX_DW.temporalCounter_i1 = 0U;
10744
10745 /* Entry 'MABX_RELAY_LATCH': '<S212>:10' */
10746 L4_MABX_B.F_MABX_relay_command_n = true;
10747 }
10748 break;
10749 }
10750 }
10751 break;
10752 }
10753 }
10754
10755 /* Lookup_n-D: '<S79>/CurveBasedSpeedSetpoint' incorporates:
10756 * Constant: '<S80>/zero'
10757 */
10758 L4_MABX_B.CurveBasedSpeedSetpoint = look1_binlcapw(L4_MABX_P.zero_Value,
10759 L4_MABX_P.CurveBasedSpeedSetpoint_bp01Dat,
10760 L4_MABX_P.CurveBasedSpeedSetpoint_tableDa, 4U);
10761
10762 /* Lookup_n-D: '<S80>/1-D Lookup Table1' */
10763 L4_MABX_B.uDLookupTable1 = look1_binlxpw(SteerWheelAngle,
10764 L4_MABX_P.uDLookupTable1_bp01Data, L4_MABX_P.uDLookupTable1_tableData, 16U);
10765
10766 /* Product: '<S279>/Divide' incorporates:
10767 * Constant: '<S271>/Constant'
10768 * Constant: '<S271>/Constant1'
10769 */
10770 L4_MABX_B.Divide_nn = (real32_T)(L4_MABX_P.Constant1_Value_i /
10771 L4_MABX_P.Constant_Value_e);
10772
10773 /* DataTypeConversion: '<S80>/Data Type Conversion5' */
10774 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o2_fl);
10775 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
10776 PositionFinalLimited = 0.0;
10777 } else {
10778 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
10779 }
10780
10781 L4_MABX_B.DataTypeConversion5_e3 = (uint8_T)(PositionFinalLimited < 0.0 ?
10782 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
10783 (uint8_T)PositionFinalLimited);
10784
10785 /* End of DataTypeConversion: '<S80>/Data Type Conversion5' */
10786
10787 /* Chart: '<S277>/Chart' */
10788 /* Gateway: STEERCTRL_10ms/slew/Chart */
10789 /* During: STEERCTRL_10ms/slew/Chart */
10790 if (L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ == 0U) {
10791 /* Entry: STEERCTRL_10ms/slew/Chart */
10792 L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ = 1U;
10793
10794 /* Entry Internal: STEERCTRL_10ms/slew/Chart */
10795 /* Transition: '<S327>:4' */
10796 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_h;
10797
10798 /* Entry 'init': '<S327>:1' */
10799 L4_MABX_B.stateChange = 0U;
10800 } else {
10801 switch (L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE) {
10802 case L4_MABX_IN_OneLane:
10803 /* During 'OneLane': '<S327>:7' */
10804 /* Transition: '<S327>:20' */
10805 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_OneLane1;
10806
10807 /* Entry 'OneLane1': '<S327>:18' */
10808 L4_MABX_B.stateChange = 0U;
10809 break;
10810
10811 case L4_MABX_IN_OneLane1:
10812 L4_MABX_B.stateChange = 0U;
10813
10814 /* During 'OneLane1': '<S327>:18' */
10815 zcEvent = ((L4_MABX_B.DataTypeConversion5_e3 < 3) ||
10816 (L4_MABX_B.DataTypeConversion5_e3 > 18));
10817 if (zcEvent) {
10818 /* Transition: '<S327>:22' */
10819 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_h;
10820
10821 /* Entry 'init': '<S327>:1' */
10822 L4_MABX_B.stateChange = 0U;
10823 }
10824 break;
10825
10826 case L4_MABX_IN_TwoLanes:
10827 /* During 'TwoLanes': '<S327>:8' */
10828 /* Transition: '<S327>:21' */
10829 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_TwoLanes1;
10830
10831 /* Entry 'TwoLanes1': '<S327>:19' */
10832 L4_MABX_B.stateChange = 0U;
10833 break;
10834
10835 case L4_MABX_IN_TwoLanes1:
10836 L4_MABX_B.stateChange = 0U;
10837
10838 /* During 'TwoLanes1': '<S327>:19' */
10839 if (L4_MABX_B.DataTypeConversion5_e3 < 18) {
10840 /* Transition: '<S327>:23' */
10841 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_h;
10842
10843 /* Entry 'init': '<S327>:1' */
10844 L4_MABX_B.stateChange = 0U;
10845 }
10846 break;
10847
10848 case L4_MABX_IN_ZeroLanes:
10849 /* During 'ZeroLanes': '<S327>:5' */
10850 /* Transition: '<S327>:16' */
10851 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_ZeroLanes1;
10852
10853 /* Entry 'ZeroLanes1': '<S327>:15' */
10854 L4_MABX_B.stateChange = 0U;
10855 break;
10856
10857 case L4_MABX_IN_ZeroLanes1:
10858 L4_MABX_B.stateChange = 0U;
10859
10860 /* During 'ZeroLanes1': '<S327>:15' */
10861 if (L4_MABX_B.DataTypeConversion5_e3 > 3) {
10862 /* Transition: '<S327>:17' */
10863 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_h;
10864
10865 /* Entry 'init': '<S327>:1' */
10866 L4_MABX_B.stateChange = 0U;
10867 }
10868 break;
10869
10870 default:
10871 L4_MABX_B.stateChange = 0U;
10872
10873 /* During 'init': '<S327>:1' */
10874 if (L4_MABX_B.DataTypeConversion5_e3 <= 3) {
10875 /* Transition: '<S327>:6' */
10876 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_ZeroLanes;
10877
10878 /* Entry 'ZeroLanes': '<S327>:5' */
10879 L4_MABX_B.stateChange = 1U;
10880 } else if (L4_MABX_B.DataTypeConversion5_e3 > 18) {
10881 /* Transition: '<S327>:9' */
10882 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_TwoLanes;
10883
10884 /* Entry 'TwoLanes': '<S327>:8' */
10885 L4_MABX_B.stateChange = 1U;
10886 } else {
10887 if (L4_MABX_B.DataTypeConversion5_e3 > 3) {
10888 /* Transition: '<S327>:10' */
10889 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_OneLane;
10890
10891 /* Entry 'OneLane': '<S327>:7' */
10892 L4_MABX_B.stateChange = 1U;
10893 }
10894 }
10895 break;
10896 }
10897 }
10898
10899 /* End of Chart: '<S277>/Chart' */
10900
10901 /* DataTypeConversion: '<S277>/Data Type Conversion' */
10902 L4_MABX_B.DataTypeConversion_l1 = (L4_MABX_B.stateChange != 0);
10903
10904 /* UnitDelay: '<S321>/Unit_Delay1' */
10905 L4_MABX_B.Unit_Delay1_jb = L4_MABX_DW.Unit_Delay1_DSTATE_db;
10906
10907 /* Logic: '<S321>/Logical Operator' incorporates:
10908 * Constant: '<S276>/zero'
10909 */
10910 L4_MABX_B.LogicalOperator_kh = (L4_MABX_P.zero_Value_g ||
10911 L4_MABX_B.Unit_Delay1_jb);
10912
10913 /* MinMax: '<S321>/MinMax1' incorporates:
10914 * Constant: '<S276>/timeConstant'
10915 * Constant: '<S276>/timeConstant1'
10916 */
10917 DeltaTime = L4_MABX_P.timeConstant1_Value;
10918 PositionFinalLimited = L4_MABX_P.timeConstant_Value;
10919 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10920 PositionFinalLimited = DeltaTime;
10921 }
10922
10923 L4_MABX_B.MinMax1_pr = PositionFinalLimited;
10924
10925 /* End of MinMax: '<S321>/MinMax1' */
10926
10927 /* Saturate: '<S321>/Saturation' */
10928 DeltaTime = L4_MABX_B.MinMax1_pr;
10929 Time56 = L4_MABX_P.Saturation_LowerSat_p2;
10930 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_o1;
10931 if (DeltaTime > PositionFinalLimited) {
10932 L4_MABX_B.Saturation_ns = PositionFinalLimited;
10933 } else if (DeltaTime < Time56) {
10934 L4_MABX_B.Saturation_ns = Time56;
10935 } else {
10936 L4_MABX_B.Saturation_ns = DeltaTime;
10937 }
10938
10939 /* End of Saturate: '<S321>/Saturation' */
10940
10941 /* Product: '<S321>/Divide' incorporates:
10942 * Constant: '<S276>/timeConstant1'
10943 */
10944 L4_MABX_B.Divide_o = L4_MABX_P.timeConstant1_Value / L4_MABX_B.Saturation_ns;
10945
10946 /* Product: '<S321>/Product2' */
10947 L4_MABX_B.Product2_bu = L4_MABX_B.SFunction1_o3_hs * L4_MABX_B.Divide_o;
10948
10949 /* Sum: '<S321>/Subtract1' incorporates:
10950 * Constant: '<S321>/Constant1'
10951 */
10952 L4_MABX_B.Subtract1_ei = L4_MABX_P.Constant1_Value_n - L4_MABX_B.Divide_o;
10953
10954 /* UnitDelay: '<S321>/Unit_Delay2' */
10955 L4_MABX_B.Unit_Delay2_k = L4_MABX_DW.Unit_Delay2_DSTATE_dv;
10956
10957 /* Product: '<S321>/Product1' */
10958 L4_MABX_B.Product1_ns = L4_MABX_B.Subtract1_ei * L4_MABX_B.Unit_Delay2_k;
10959
10960 /* Sum: '<S321>/Add1' */
10961 L4_MABX_B.Add1_k = L4_MABX_B.Product2_bu + L4_MABX_B.Product1_ns;
10962
10963 /* Outputs for Atomic SubSystem: '<S321>/If_Then_Else' */
10964 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_kh, L4_MABX_B.SFunction1_o3_hs,
10965 L4_MABX_B.Add1_k, &L4_MABX_B.If_Then_Else_b3);
10966
10967 /* End of Outputs for SubSystem: '<S321>/If_Then_Else' */
10968
10969 /* Abs: '<S276>/Abs' */
10970 L4_MABX_B.Abs_i = fabs(L4_MABX_B.SFunction1_o3_hs);
10971
10972 /* Sum: '<S276>/Add' */
10973 L4_MABX_B.Add_p = L4_MABX_B.Abs_i - L4_MABX_B.If_Then_Else_b3.Switch;
10974
10975 /* RelationalOperator: '<S276>/highRateOfChange' incorporates:
10976 * Constant: '<S276>/rateOfChangeThreshold'
10977 */
10978 L4_MABX_B.highRateOfChange = (L4_MABX_B.Add_p >
10979 L4_MABX_P.rateOfChangeThreshold_Value);
10980
10981 /* RelationalOperator: '<S276>/closeToEdge' incorporates:
10982 * Constant: '<S276>/closeToLaneEdgeThreshold'
10983 */
10984 L4_MABX_B.closeToEdge = (L4_MABX_B.Abs_i >
10985 L4_MABX_P.closeToLaneEdgeThreshold_Value);
10986
10987 /* Logic: '<S276>/JumpNearEdge' */
10988 L4_MABX_B.JumpNearEdge = (L4_MABX_B.highRateOfChange && L4_MABX_B.closeToEdge);
10989
10990 /* UnitDelay: '<S320>/Delay Input1' */
10991 L4_MABX_B.Uk1_k2 = L4_MABX_DW.DelayInput1_DSTATE_f0;
10992
10993 /* RelationalOperator: '<S320>/FixPt Relational Operator' */
10994 L4_MABX_B.FixPtRelationalOperator_iv = (L4_MABX_B.JumpNearEdge !=
10995 L4_MABX_B.Uk1_k2);
10996
10997 /* DataTypeConversion: '<S276>/Data Type Conversion' */
10998 L4_MABX_B.DataTypeConversion_dz = L4_MABX_B.FixPtRelationalOperator_iv;
10999
11000 /* UnitDelay: '<S322>/Unit_Delay1' */
11001 L4_MABX_B.Unit_Delay1_f = L4_MABX_DW.Unit_Delay1_DSTATE_a;
11002
11003 /* Logic: '<S322>/Logical Operator' */
11004 L4_MABX_B.LogicalOperator_a = (L4_MABX_B.DataTypeConversion_dz ||
11005 L4_MABX_B.Unit_Delay1_f);
11006
11007 /* Switch: '<S276>/Switch' incorporates:
11008 * Constant: '<S276>/correction'
11009 * Constant: '<S276>/zero1'
11010 */
11011 if (L4_MABX_B.JumpNearEdge) {
11012 L4_MABX_B.Switch_g = L4_MABX_P.correction_Value;
11013 } else {
11014 L4_MABX_B.Switch_g = L4_MABX_P.zero1_Value;
11015 }
11016
11017 /* End of Switch: '<S276>/Switch' */
11018
11019 /* MinMax: '<S322>/MinMax1' incorporates:
11020 * Constant: '<S276>/timeConstant2'
11021 * Constant: '<S276>/timeConstant3'
11022 */
11023 DeltaTime = L4_MABX_P.timeConstant3_Value;
11024 PositionFinalLimited = L4_MABX_P.timeConstant2_Value;
11025 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11026 PositionFinalLimited = DeltaTime;
11027 }
11028
11029 L4_MABX_B.MinMax1_a = PositionFinalLimited;
11030
11031 /* End of MinMax: '<S322>/MinMax1' */
11032
11033 /* Saturate: '<S322>/Saturation' */
11034 DeltaTime = L4_MABX_B.MinMax1_a;
11035 Time56 = L4_MABX_P.Saturation_LowerSat_ph;
11036 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_d;
11037 if (DeltaTime > PositionFinalLimited) {
11038 L4_MABX_B.Saturation_e = PositionFinalLimited;
11039 } else if (DeltaTime < Time56) {
11040 L4_MABX_B.Saturation_e = Time56;
11041 } else {
11042 L4_MABX_B.Saturation_e = DeltaTime;
11043 }
11044
11045 /* End of Saturate: '<S322>/Saturation' */
11046
11047 /* Product: '<S322>/Divide' incorporates:
11048 * Constant: '<S276>/timeConstant3'
11049 */
11050 L4_MABX_B.Divide_d = L4_MABX_P.timeConstant3_Value / L4_MABX_B.Saturation_e;
11051
11052 /* Product: '<S322>/Product2' */
11053 L4_MABX_B.Product2_f = L4_MABX_B.Switch_g * L4_MABX_B.Divide_d;
11054
11055 /* Sum: '<S322>/Subtract1' incorporates:
11056 * Constant: '<S322>/Constant1'
11057 */
11058 L4_MABX_B.Subtract1_b = L4_MABX_P.Constant1_Value_j - L4_MABX_B.Divide_d;
11059
11060 /* UnitDelay: '<S322>/Unit_Delay2' */
11061 L4_MABX_B.Unit_Delay2_l = L4_MABX_DW.Unit_Delay2_DSTATE_i;
11062
11063 /* Product: '<S322>/Product1' */
11064 L4_MABX_B.Product1_c = L4_MABX_B.Subtract1_b * L4_MABX_B.Unit_Delay2_l;
11065
11066 /* Sum: '<S322>/Add1' */
11067 L4_MABX_B.Add1_pt = L4_MABX_B.Product2_f + L4_MABX_B.Product1_c;
11068
11069 /* Outputs for Atomic SubSystem: '<S322>/If_Then_Else' */
11070
11071 /* Constant: '<S276>/zero2' */
11072 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_a, L4_MABX_P.zero2_Value,
11073 L4_MABX_B.Add1_pt, &L4_MABX_B.If_Then_Else_mk);
11074
11075 /* End of Outputs for SubSystem: '<S322>/If_Then_Else' */
11076
11077 /* Signum: '<S276>/Sign' */
11078 PositionFinalLimited = L4_MABX_B.SFunction1_o3_hs;
11079 if (PositionFinalLimited < 0.0) {
11080 L4_MABX_B.Sign = -1.0;
11081 } else if (PositionFinalLimited > 0.0) {
11082 L4_MABX_B.Sign = 1.0;
11083 } else if (PositionFinalLimited == 0.0) {
11084 L4_MABX_B.Sign = 0.0;
11085 } else {
11086 L4_MABX_B.Sign = (rtNaN);
11087 }
11088
11089 /* End of Signum: '<S276>/Sign' */
11090
11091 /* Product: '<S276>/Product' */
11092 L4_MABX_B.Product_cf = L4_MABX_B.If_Then_Else_mk.Switch * L4_MABX_B.Sign;
11093
11094 /* UnitDelay: '<S323>/Unit_Delay1' */
11095 L4_MABX_B.Unit_Delay1_d = L4_MABX_DW.Unit_Delay1_DSTATE_p;
11096
11097 /* Logic: '<S323>/Logical Operator' incorporates:
11098 * Constant: '<S276>/zero3'
11099 */
11100 L4_MABX_B.LogicalOperator_nz = (L4_MABX_P.zero3_Value ||
11101 L4_MABX_B.Unit_Delay1_d);
11102
11103 /* MinMax: '<S323>/MinMax1' incorporates:
11104 * Constant: '<S276>/timeConstant4'
11105 * Constant: '<S276>/timeConstant5'
11106 */
11107 DeltaTime = L4_MABX_P.timeConstant5_Value;
11108 PositionFinalLimited = L4_MABX_P.timeConstant4_Value;
11109 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11110 PositionFinalLimited = DeltaTime;
11111 }
11112
11113 L4_MABX_B.MinMax1_e = PositionFinalLimited;
11114
11115 /* End of MinMax: '<S323>/MinMax1' */
11116
11117 /* Saturate: '<S323>/Saturation' */
11118 DeltaTime = L4_MABX_B.MinMax1_e;
11119 Time56 = L4_MABX_P.Saturation_LowerSat_k;
11120 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_ok;
11121 if (DeltaTime > PositionFinalLimited) {
11122 L4_MABX_B.Saturation_o = PositionFinalLimited;
11123 } else if (DeltaTime < Time56) {
11124 L4_MABX_B.Saturation_o = Time56;
11125 } else {
11126 L4_MABX_B.Saturation_o = DeltaTime;
11127 }
11128
11129 /* End of Saturate: '<S323>/Saturation' */
11130
11131 /* Product: '<S323>/Divide' incorporates:
11132 * Constant: '<S276>/timeConstant5'
11133 */
11134 L4_MABX_B.Divide_jr = L4_MABX_P.timeConstant5_Value / L4_MABX_B.Saturation_o;
11135
11136 /* Product: '<S323>/Product2' */
11137 L4_MABX_B.Product2_nk = L4_MABX_B.SFunction1_o3_hs * L4_MABX_B.Divide_jr;
11138
11139 /* Sum: '<S323>/Subtract1' incorporates:
11140 * Constant: '<S323>/Constant1'
11141 */
11142 L4_MABX_B.Subtract1_eh = L4_MABX_P.Constant1_Value_oi - L4_MABX_B.Divide_jr;
11143
11144 /* UnitDelay: '<S323>/Unit_Delay2' */
11145 L4_MABX_B.Unit_Delay2_c4 = L4_MABX_DW.Unit_Delay2_DSTATE_p;
11146
11147 /* Product: '<S323>/Product1' */
11148 L4_MABX_B.Product1_cc = L4_MABX_B.Subtract1_eh * L4_MABX_B.Unit_Delay2_c4;
11149
11150 /* Sum: '<S323>/Add1' */
11151 L4_MABX_B.Add1_f = L4_MABX_B.Product2_nk + L4_MABX_B.Product1_cc;
11152
11153 /* Outputs for Atomic SubSystem: '<S323>/If_Then_Else' */
11154 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_nz, L4_MABX_B.SFunction1_o3_hs,
11155 L4_MABX_B.Add1_f, &L4_MABX_B.If_Then_Else_lh);
11156
11157 /* End of Outputs for SubSystem: '<S323>/If_Then_Else' */
11158
11159 /* Switch: '<S276>/Switch1' */
11160 if (L4_MABX_B.JumpNearEdge) {
11161 L4_MABX_B.Switch1_f = L4_MABX_B.If_Then_Else_lh.Switch;
11162 } else {
11163 L4_MABX_B.Switch1_f = L4_MABX_B.SFunction1_o3_hs;
11164 }
11165
11166 /* End of Switch: '<S276>/Switch1' */
11167
11168 /* Sum: '<S276>/corrected Error' */
11169 L4_MABX_B.correctedError = L4_MABX_B.Product_cf + L4_MABX_B.Switch1_f;
11170
11171 /* RelationalOperator: '<S277>/Relational Operator' incorporates:
11172 * Constant: '<S277>/Constant'
11173 */
11174 L4_MABX_B.RelationalOperator_l5 = (L4_MABX_B.DataTypeConversion5_e3 >=
11175 L4_MABX_P.Constant_Value_mg);
11176
11177 /* Switch: '<S277>/Switch' incorporates:
11178 * Constant: '<S277>/Constant1'
11179 */
11180 if (L4_MABX_B.RelationalOperator_l5) {
11181 L4_MABX_B.Switch_h = L4_MABX_B.correctedError;
11182 } else {
11183 L4_MABX_B.Switch_h = L4_MABX_P.Constant1_Value_l;
11184 }
11185
11186 /* End of Switch: '<S277>/Switch' */
11187
11188 /* Outputs for Enabled SubSystem: '<S277>/Slew_at_event' incorporates:
11189 * EnablePort: '<S328>/Enable'
11190 */
11191 /* Constant: '<S277>/enable' */
11192 if (L4_MABX_P.enable_Value > 0.0) {
11193 if (!L4_MABX_DW.Slew_at_event_MODE_d) {
11194 /* InitializeConditions for UnitDelay: '<S330>/Unit_Delay' */
11195 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_P.Unit_Delay_InitialCondition_ls;
11196
11197 /* InitializeConditions for UnitDelay: '<S331>/Unit_Delay' */
11198 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Unit_Delay_InitialCondition_i0;
11199
11200 /* InitializeConditions for UnitDelay: '<S334>/FixPt Unit Delay2' */
11201 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ji =
11202 L4_MABX_P.FixPtUnitDelay2_InitialCondit_c;
11203
11204 /* InitializeConditions for UnitDelay: '<S334>/FixPt Unit Delay1' */
11205 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o =
11206 L4_MABX_P.FixPtUnitDelay1_InitialCondit_f;
11207
11208 /* InitializeConditions for UnitDelay: '<S329>/Unit_Delay' */
11209 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_P.Unit_Delay_InitialCondition_ld;
11210 L4_MABX_DW.Slew_at_event_MODE_d = true;
11211 }
11212
11213 /* UnitDelay: '<S330>/Unit_Delay' */
11214 L4_MABX_B.Unit_Delay_o3 = L4_MABX_DW.Unit_Delay_DSTATE_bd;
11215
11216 /* Logic: '<S330>/Logical Operator1' */
11217 L4_MABX_B.LogicalOperator1_gw = !L4_MABX_B.Unit_Delay_o3;
11218
11219 /* Logic: '<S330>/Logical Operator' */
11220 L4_MABX_B.LogicalOperator_d2 = (L4_MABX_B.DataTypeConversion_l1 &&
11221 L4_MABX_B.LogicalOperator1_gw);
11222
11223 /* UnitDelay: '<S331>/Unit_Delay' */
11224 L4_MABX_B.Unit_Delay_hj = L4_MABX_DW.Unit_Delay_DSTATE_jt;
11225
11226 /* Logic: '<S331>/Logical Operator1' */
11227 L4_MABX_B.LogicalOperator1_hp = (L4_MABX_B.LogicalOperator_d2 ||
11228 L4_MABX_B.Unit_Delay_hj);
11229
11230 /* UnitDelay: '<S334>/FixPt Unit Delay2' */
11231 L4_MABX_B.FixPtUnitDelay2_h5 = L4_MABX_DW.FixPtUnitDelay2_DSTATE_ji;
11232
11233 /* UnitDelay: '<S334>/FixPt Unit Delay1' */
11234 L4_MABX_B.Xold_g = L4_MABX_DW.FixPtUnitDelay1_DSTATE_o;
11235
11236 /* Switch: '<S334>/Init' */
11237 if (L4_MABX_B.FixPtUnitDelay2_h5 != 0) {
11238 L4_MABX_B.Init_j = L4_MABX_B.Switch_h;
11239 } else {
11240 L4_MABX_B.Init_j = L4_MABX_B.Xold_g;
11241 }
11242
11243 /* End of Switch: '<S334>/Init' */
11244
11245 /* Abs: '<S331>/Abs' incorporates:
11246 * Constant: '<S277>/Constant3'
11247 */
11248 L4_MABX_B.Abs_a = fabs(L4_MABX_P.Constant3_Value_j);
11249
11250 /* Product: '<S331>/Product1' incorporates:
11251 * Constant: '<S277>/Constant2'
11252 */
11253 L4_MABX_B.Product1_i3 = L4_MABX_B.Abs_a * L4_MABX_P.Constant2_Value_p;
11254
11255 /* Sum: '<S331>/Add1' */
11256 L4_MABX_B.Add1_b0 = L4_MABX_B.Init_j + L4_MABX_B.Product1_i3;
11257
11258 /* MinMax: '<S331>/MinMax2' */
11259 DeltaTime = L4_MABX_B.Switch_h;
11260 PositionFinalLimited = L4_MABX_B.Add1_b0;
11261 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11262 PositionFinalLimited = DeltaTime;
11263 }
11264
11265 L4_MABX_B.MinMax2_l = PositionFinalLimited;
11266
11267 /* End of MinMax: '<S331>/MinMax2' */
11268
11269 /* Abs: '<S331>/Abs1' incorporates:
11270 * Constant: '<S277>/Constant4'
11271 */
11272 L4_MABX_B.Abs1_e = fabs(L4_MABX_P.Constant4_Value_bq);
11273
11274 /* Product: '<S331>/Product2' incorporates:
11275 * Constant: '<S277>/Constant2'
11276 */
11277 L4_MABX_B.Product2_k = L4_MABX_P.Constant2_Value_p * L4_MABX_B.Abs1_e;
11278
11279 /* Sum: '<S331>/Subtract1' */
11280 L4_MABX_B.Subtract1_g = L4_MABX_B.Init_j - L4_MABX_B.Product2_k;
11281
11282 /* MinMax: '<S331>/MinMax1' */
11283 DeltaTime = L4_MABX_B.MinMax2_l;
11284 PositionFinalLimited = L4_MABX_B.Subtract1_g;
11285 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11286 PositionFinalLimited = DeltaTime;
11287 }
11288
11289 L4_MABX_B.MinMax1_k = PositionFinalLimited;
11290
11291 /* End of MinMax: '<S331>/MinMax1' */
11292
11293 /* Outputs for Atomic SubSystem: '<S331>/If_Then_Else' */
11294 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_hp, L4_MABX_B.Switch_h,
11295 L4_MABX_B.MinMax1_k, &L4_MABX_B.If_Then_Else_n3);
11296
11297 /* End of Outputs for SubSystem: '<S331>/If_Then_Else' */
11298
11299 /* Sum: '<S328>/Subtract' */
11300 L4_MABX_B.Subtract_ij = L4_MABX_B.Switch_h -
11301 L4_MABX_B.If_Then_Else_n3.Switch;
11302
11303 /* Abs: '<S328>/Abs' */
11304 L4_MABX_B.Abs_eu = fabs(L4_MABX_B.Subtract_ij);
11305
11306 /* RelationalOperator: '<S328>/Relational Operator1' incorporates:
11307 * Constant: '<S328>/Constant1'
11308 */
11309 L4_MABX_B.RelationalOperator1_e = (L4_MABX_B.Abs_eu <=
11310 L4_MABX_P.Constant1_Value_ah);
11311
11312 /* Logic: '<S329>/Logical Operator3' */
11313 L4_MABX_B.LogicalOperator3_a = !L4_MABX_B.RelationalOperator1_e;
11314
11315 /* UnitDelay: '<S329>/Unit_Delay' */
11316 L4_MABX_B.Unit_Delay_i = L4_MABX_DW.Unit_Delay_DSTATE_ll;
11317
11318 /* Logic: '<S329>/Logical Operator1' */
11319 L4_MABX_B.LogicalOperator1_jo = (L4_MABX_B.DataTypeConversion_l1 ||
11320 L4_MABX_B.Unit_Delay_i);
11321
11322 /* Logic: '<S329>/Logical Operator' */
11323 L4_MABX_B.LogicalOperator_dm = (L4_MABX_B.LogicalOperator3_a &&
11324 L4_MABX_B.LogicalOperator1_jo);
11325
11326 /* Logic: '<S329>/Logical Operator2' */
11327 L4_MABX_B.LogicalOperator2_j = !L4_MABX_B.LogicalOperator_dm;
11328
11329 /* RelationalOperator: '<S332>/min_relop' incorporates:
11330 * Constant: '<S277>/Constant3'
11331 * Constant: '<S332>/min_val'
11332 */
11333 L4_MABX_B.min_relop_d = (L4_MABX_P.CheckStaticLowerBound_min_n <=
11334 L4_MABX_P.Constant3_Value_j);
11335
11336 /* Assertion: '<S332>/Assertion' */
11337 utAssert(L4_MABX_B.min_relop_d);
11338 } else {
11339 if (L4_MABX_DW.Slew_at_event_MODE_d) {
11340 /* Disable for Outport: '<S328>/F_Out_slewing' */
11341 L4_MABX_B.LogicalOperator_dm = L4_MABX_P.F_Out_slewing_Y0;
11342
11343 /* Disable for Outport: '<S328>/Out' */
11344 L4_MABX_B.If_Then_Else_n3.Switch = L4_MABX_P.Out_Y0;
11345 L4_MABX_DW.Slew_at_event_MODE_d = false;
11346 }
11347 }
11348
11349 /* End of Constant: '<S277>/enable' */
11350 /* End of Outputs for SubSystem: '<S277>/Slew_at_event' */
11351
11352 /* Switch: '<S277>/Switch1' incorporates:
11353 * Constant: '<S277>/enableSlew'
11354 */
11355 if (L4_MABX_P.enableSlew_Value != 0.0) {
11356 L4_MABX_B.Switch1_j = L4_MABX_B.If_Then_Else_n3.Switch;
11357 } else {
11358 L4_MABX_B.Switch1_j = L4_MABX_B.Switch_h;
11359 }
11360
11361 /* End of Switch: '<S277>/Switch1' */
11362
11363 /* Gain: '<S80>/sign' */
11364 L4_MABX_B.SteerCtrlErrRaw = L4_MABX_P.sign_Gain * L4_MABX_B.Switch1_j;
11365
11366 /* DataTypeConversion: '<S80>/Data Type Conversion1' */
11367 L4_MABX_B.DataTypeConversion1_e = L4_MABX_B.SteerCtrlErrRaw;
11368
11369 /* UnitDelay: '<S279>/Unit Delay' */
11370 L4_MABX_B.UnitDelay_fm = L4_MABX_DW.UnitDelay_DSTATE_d;
11371
11372 /* Switch: '<S283>/Switch1' incorporates:
11373 * Constant: '<S279>/E'
11374 * Constant: '<S279>/R'
11375 * Switch: '<S281>/Switch1'
11376 */
11377 if (L4_MABX_P.R_Value) {
11378 /* DataTypeConversion: '<S279>/Data Type Conversion1' incorporates:
11379 * Constant: '<S279>/IV'
11380 */
11381 L4_MABX_B.DataTypeConversion1_b1 = (real32_T)L4_MABX_P.IV_Value;
11382 L4_MABX_B.Switch1_fi = L4_MABX_B.DataTypeConversion1_b1;
11383 } else {
11384 if (L4_MABX_P.E_Value_j) {
11385 /* DataTypeConversion: '<S279>/Data Type Conversion' incorporates:
11386 * Switch: '<S281>/Switch1'
11387 */
11388 L4_MABX_B.DataTypeConversion_ps = (real32_T)
11389 L4_MABX_B.DataTypeConversion1_e;
11390
11391 /* Sum: '<S279>/Add3' incorporates:
11392 * Switch: '<S281>/Switch1'
11393 */
11394 L4_MABX_B.Add3_j = L4_MABX_B.DataTypeConversion_ps -
11395 L4_MABX_B.UnitDelay_fm;
11396
11397 /* Product: '<S279>/Product1' incorporates:
11398 * Switch: '<S281>/Switch1'
11399 */
11400 L4_MABX_B.Product1_n2 = L4_MABX_B.Divide_nn * L4_MABX_B.Add3_j;
11401
11402 /* Sum: '<S279>/Add' incorporates:
11403 * Switch: '<S281>/Switch1'
11404 */
11405 L4_MABX_B.Add_f = L4_MABX_B.Product1_n2 + L4_MABX_B.UnitDelay_fm;
11406
11407 /* Switch: '<S281>/Switch1' */
11408 L4_MABX_B.Switch1_cw = L4_MABX_B.Add_f;
11409 } else {
11410 /* Switch: '<S281>/Switch1' */
11411 L4_MABX_B.Switch1_cw = L4_MABX_B.UnitDelay_fm;
11412 }
11413
11414 L4_MABX_B.Switch1_fi = L4_MABX_B.Switch1_cw;
11415 }
11416
11417 /* End of Switch: '<S283>/Switch1' */
11418
11419 /* DataTypeConversion: '<S280>/Conversion' */
11420 L4_MABX_B.Conversion = L4_MABX_B.Switch1_fi;
11421
11422 /* Abs: '<S80>/Abs' */
11423 L4_MABX_B.Abs_d = fabs(L4_MABX_B.Conversion);
11424
11425 /* Lookup_n-D: '<S80>/SteeringControlPGainErrorBased' */
11426 L4_MABX_B.SteeringControlPGainErrorBased = look1_binlxpw(L4_MABX_B.Abs_d,
11427 L4_MABX_P.SteeringControlPGainErrorBase_n,
11428 L4_MABX_P.SteeringControlPGainErrorBased_, 9U);
11429
11430 /* DataTypeConversion: '<S80>/Data Type Conversion' */
11431 L4_MABX_B.DataTypeConversion_k = L4_MABX_B.SFunction1_o1_m1;
11432
11433 /* Lookup_n-D: '<S80>/SteeringControlPGainSpeedFactor' */
11434 L4_MABX_B.SteeringControlPGainSpeedFactor = look1_binlxpw
11435 (L4_MABX_B.DataTypeConversion_k, L4_MABX_P.SteeringControlPGainSpeedFact_i,
11436 L4_MABX_P.SteeringControlPGainSpeedFactor, 8U);
11437
11438 /* Product: '<S80>/Product1' */
11439 L4_MABX_B.SteerCtrlPgain = L4_MABX_B.SteeringControlPGainErrorBased *
11440 L4_MABX_B.SteeringControlPGainSpeedFactor;
11441
11442 /* Gain: '<S80>/Gain' */
11443 L4_MABX_B.Gain_c = L4_MABX_P.Gain_Gain_m * L4_MABX_B.SteerCtrlPgain;
11444
11445 /* Product: '<S290>/Product' */
11446 L4_MABX_B.Product_d = L4_MABX_B.Conversion * L4_MABX_B.Gain_c;
11447
11448 /* Product: '<S290>/Divide' incorporates:
11449 * Constant: '<S273>/Constant21'
11450 * Constant: '<S273>/SteeringControlIntGain'
11451 */
11452 L4_MABX_B.Divide_ag = L4_MABX_P.Constant21_Value /
11453 L4_MABX_P.SteeringControlIntGain_Value;
11454
11455 /* Product: '<S290>/Product1' */
11456 L4_MABX_B.Product1_hr = L4_MABX_B.Product_d * L4_MABX_B.Divide_ag;
11457
11458 /* UnitDelay: '<S289>/Unit Delay' */
11459 L4_MABX_B.UnitDelay_m = L4_MABX_DW.UnitDelay_DSTATE_m;
11460
11461 /* RelationalOperator: '<S289>/Relational Operator' incorporates:
11462 * Constant: '<S273>/Constant19'
11463 */
11464 L4_MABX_B.RelationalOperator_d = (L4_MABX_B.UnitDelay_m >=
11465 L4_MABX_P.Constant19_Value);
11466
11467 /* Switch: '<S289>/Switch' incorporates:
11468 * Constant: '<S289>/Constant3'
11469 */
11470 if (L4_MABX_B.RelationalOperator_d) {
11471 L4_MABX_B.Switch_ov = L4_MABX_P.Constant3_Value_pw;
11472 } else {
11473 /* RelationalOperator: '<S289>/Relational Operator1' incorporates:
11474 * Constant: '<S273>/Constant20'
11475 */
11476 L4_MABX_B.RelationalOperator1_mf = (L4_MABX_B.UnitDelay_m <=
11477 L4_MABX_P.Constant20_Value);
11478
11479 /* Switch: '<S289>/Switch1' incorporates:
11480 * Constant: '<S289>/Constant'
11481 * Constant: '<S289>/Constant2'
11482 */
11483 if (L4_MABX_B.RelationalOperator1_mf) {
11484 L4_MABX_B.Switch1_m = L4_MABX_P.Constant2_Value_hu;
11485 } else {
11486 L4_MABX_B.Switch1_m = L4_MABX_P.Constant_Value_i;
11487 }
11488
11489 /* End of Switch: '<S289>/Switch1' */
11490 L4_MABX_B.Switch_ov = L4_MABX_B.Switch1_m;
11491 }
11492
11493 /* End of Switch: '<S289>/Switch' */
11494
11495 /* RelationalOperator: '<S292>/Relational Operator5' incorporates:
11496 * Constant: '<S292>/Constant5'
11497 */
11498 L4_MABX_B.RelationalOperator5_f = (L4_MABX_B.Switch_ov !=
11499 L4_MABX_P.Constant5_Value_o);
11500
11501 /* Signum: '<S292>/Sign1' */
11502 PositionFinalLimited = L4_MABX_B.Product1_hr;
11503 if (PositionFinalLimited < 0.0) {
11504 L4_MABX_B.Sign1 = -1.0;
11505 } else if (PositionFinalLimited > 0.0) {
11506 L4_MABX_B.Sign1 = 1.0;
11507 } else if (PositionFinalLimited == 0.0) {
11508 L4_MABX_B.Sign1 = 0.0;
11509 } else {
11510 L4_MABX_B.Sign1 = (rtNaN);
11511 }
11512
11513 /* End of Signum: '<S292>/Sign1' */
11514
11515 /* RelationalOperator: '<S292>/Relational Operator4' incorporates:
11516 * Constant: '<S292>/Constant4'
11517 */
11518 L4_MABX_B.RelationalOperator4_la = (L4_MABX_P.Constant4_Value_j ==
11519 L4_MABX_B.Sign1);
11520
11521 /* RelationalOperator: '<S292>/Relational Operator2' incorporates:
11522 * Constant: '<S292>/Constant2'
11523 */
11524 L4_MABX_B.RelationalOperator2_o = (L4_MABX_B.Switch_ov !=
11525 L4_MABX_P.Constant2_Value_g);
11526
11527 /* Logic: '<S292>/Logical Operator1' */
11528 L4_MABX_B.LogicalOperator1_ji = (L4_MABX_B.RelationalOperator4_la &&
11529 L4_MABX_B.RelationalOperator2_o);
11530
11531 /* RelationalOperator: '<S292>/Relational Operator1' incorporates:
11532 * Constant: '<S292>/Constant1'
11533 */
11534 L4_MABX_B.RelationalOperator1_ie = (L4_MABX_B.Switch_ov !=
11535 L4_MABX_P.Constant1_Value_ly);
11536
11537 /* RelationalOperator: '<S292>/Relational Operator3' incorporates:
11538 * Constant: '<S292>/Constant3'
11539 */
11540 L4_MABX_B.RelationalOperator3_p = (L4_MABX_P.Constant3_Value_g ==
11541 L4_MABX_B.Sign1);
11542
11543 /* Logic: '<S292>/Logical Operator2' */
11544 L4_MABX_B.LogicalOperator2_o = (L4_MABX_B.RelationalOperator1_ie &&
11545 L4_MABX_B.RelationalOperator3_p);
11546
11547 /* Logic: '<S292>/Logical Operator' */
11548 L4_MABX_B.LogicalOperator_bs = (L4_MABX_B.LogicalOperator1_ji ||
11549 L4_MABX_B.LogicalOperator2_o);
11550
11551 /* Logic: '<S292>/Logical Operator3' */
11552 L4_MABX_B.LogicalOperator3_oi = (L4_MABX_B.RelationalOperator5_f &&
11553 L4_MABX_B.LogicalOperator_bs);
11554
11555 /* Switch: '<S292>/Switch1' incorporates:
11556 * Constant: '<S292>/Constant'
11557 */
11558 if (L4_MABX_B.LogicalOperator3_oi) {
11559 L4_MABX_B.Switch1_jw = L4_MABX_B.Product1_hr;
11560 } else {
11561 L4_MABX_B.Switch1_jw = L4_MABX_P.Constant_Value_o;
11562 }
11563
11564 /* End of Switch: '<S292>/Switch1' */
11565
11566 /* UnitDelay: '<S290>/Unit Delay' */
11567 L4_MABX_B.UnitDelay_o = L4_MABX_DW.UnitDelay_DSTATE_m0;
11568
11569 /* Sum: '<S290>/Add' */
11570 L4_MABX_B.Add_px = L4_MABX_B.Switch1_jw + L4_MABX_B.UnitDelay_o;
11571
11572 /* Product: '<S290>/Divide1' incorporates:
11573 * Constant: '<S273>/Constant21'
11574 * Constant: '<S273>/SteeringControlDGain'
11575 */
11576 L4_MABX_B.Divide1_b = L4_MABX_P.SteeringControlDGain_Value *
11577 L4_MABX_B.Product_d / L4_MABX_P.Constant21_Value;
11578
11579 /* UnitDelay: '<S290>/Unit Delay1' */
11580 L4_MABX_B.UnitDelay1_e = L4_MABX_DW.UnitDelay1_DSTATE_k;
11581
11582 /* Sum: '<S290>/Add3' */
11583 L4_MABX_B.Add3 = L4_MABX_B.Divide1_b - L4_MABX_B.UnitDelay1_e;
11584
11585 /* Sum: '<S290>/Add1' */
11586 L4_MABX_B.Add1_m = (L4_MABX_B.Product_d + L4_MABX_B.Add_px) + L4_MABX_B.Add3;
11587
11588 /* RelationalOperator: '<S291>/LowerRelop1' incorporates:
11589 * Constant: '<S273>/Constant19'
11590 */
11591 L4_MABX_B.LowerRelop1 = (L4_MABX_B.Add1_m > L4_MABX_P.Constant19_Value);
11592
11593 /* RelationalOperator: '<S291>/UpperRelop' incorporates:
11594 * Constant: '<S273>/Constant20'
11595 */
11596 L4_MABX_B.UpperRelop = (L4_MABX_B.Add1_m < L4_MABX_P.Constant20_Value);
11597
11598 /* Switch: '<S291>/Switch' incorporates:
11599 * Constant: '<S273>/Constant20'
11600 */
11601 if (L4_MABX_B.UpperRelop) {
11602 L4_MABX_B.Switch_p = L4_MABX_P.Constant20_Value;
11603 } else {
11604 L4_MABX_B.Switch_p = L4_MABX_B.Add1_m;
11605 }
11606
11607 /* End of Switch: '<S291>/Switch' */
11608
11609 /* Switch: '<S291>/Switch2' incorporates:
11610 * Constant: '<S273>/Constant19'
11611 */
11612 if (L4_MABX_B.LowerRelop1) {
11613 L4_MABX_B.Switch2_i = L4_MABX_P.Constant19_Value;
11614 } else {
11615 L4_MABX_B.Switch2_i = L4_MABX_B.Switch_p;
11616 }
11617
11618 /* End of Switch: '<S291>/Switch2' */
11619
11620 /* RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
11621 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11622 L4_MABX_B.previewSteeringAngle_b =
11623 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0;
11624 }
11625
11626 /* Gain: '<S80>/rad2deg1' */
11627 L4_MABX_B.rad2deg1 = L4_MABX_P.rad2deg1_Gain *
11628 L4_MABX_B.previewSteeringAngle_b;
11629
11630 /* Sum: '<S80>/Add2' incorporates:
11631 * Constant: '<S80>/steeringOffset'
11632 */
11633 L4_MABX_B.Add2 = (L4_MABX_B.rad2deg1 + L4_MABX_B.Switch2_i) +
11634 L4_MABX_P.steeringOffset_Value;
11635
11636 /* Lookup_n-D: '<S278>/1-D Lookup Table' */
11637 L4_MABX_B.uDLookupTable_a = look1_binlxpw(L4_MABX_B.DataTypeConversion_k,
11638 L4_MABX_P.uDLookupTable_bp01Data_kj, L4_MABX_P.uDLookupTable_tableData_b, 8U);
11639
11640 /* Product: '<S278>/AdjustedStanleyGain' incorporates:
11641 * Constant: '<S278>/stanleySteeringControlGain'
11642 */
11643 L4_MABX_B.AdjustedStanleyGain = L4_MABX_B.uDLookupTable_a *
11644 L4_MABX_P.stanleySteeringControlGain_Valu;
11645
11646 /* Step: '<S272>/Step' */
11647 PositionFinalLimited = L4_MABX_M->Timing.t[0];
11648 if (PositionFinalLimited < L4_MABX_P.Step_Time) {
11649 L4_MABX_B.Step = L4_MABX_P.Step_Y0;
11650 } else {
11651 L4_MABX_B.Step = L4_MABX_P.Step_YFinal;
11652 }
11653
11654 /* End of Step: '<S272>/Step' */
11655
11656 /* DataTypeConversion: '<S272>/Data Type Conversion' */
11657 L4_MABX_B.DataTypeConversion_dn = (L4_MABX_B.Step != 0.0);
11658
11659 /* Product: '<S284>/Divide' incorporates:
11660 * Constant: '<S272>/Constant'
11661 * Constant: '<S272>/Constant1'
11662 */
11663 L4_MABX_B.Divide_d0 = (real32_T)(L4_MABX_P.Constant1_Value_iy /
11664 L4_MABX_P.Constant_Value_d);
11665
11666 /* RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
11667 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11668 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1 =
11669 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_;
11670 }
11671
11672 /* Gain: '<S80>/signCurveOffset' */
11673 L4_MABX_B.signCurveOffset = L4_MABX_P.signCurveOffset_Gain *
11674 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1;
11675
11676 /* UnitDelay: '<S284>/Unit Delay' */
11677 L4_MABX_B.UnitDelay_lj = L4_MABX_DW.UnitDelay_DSTATE_m1;
11678
11679 /* Switch: '<S288>/Switch1' incorporates:
11680 * Constant: '<S284>/E'
11681 * Switch: '<S286>/Switch1'
11682 */
11683 if (L4_MABX_B.DataTypeConversion_dn) {
11684 /* DataTypeConversion: '<S284>/Data Type Conversion1' incorporates:
11685 * Constant: '<S284>/IV'
11686 */
11687 L4_MABX_B.DataTypeConversion1_g = (real32_T)L4_MABX_P.IV_Value_o;
11688 L4_MABX_B.Switch1_pb = L4_MABX_B.DataTypeConversion1_g;
11689 } else {
11690 if (L4_MABX_P.E_Value_ct) {
11691 /* DataTypeConversion: '<S284>/Data Type Conversion' incorporates:
11692 * Switch: '<S286>/Switch1'
11693 */
11694 L4_MABX_B.DataTypeConversion_m = (real32_T)L4_MABX_B.signCurveOffset;
11695
11696 /* Sum: '<S284>/Add3' incorporates:
11697 * Switch: '<S286>/Switch1'
11698 */
11699 L4_MABX_B.Add3_p = L4_MABX_B.DataTypeConversion_m - L4_MABX_B.UnitDelay_lj;
11700
11701 /* Product: '<S284>/Product1' incorporates:
11702 * Switch: '<S286>/Switch1'
11703 */
11704 L4_MABX_B.Product1_ce = L4_MABX_B.Divide_d0 * L4_MABX_B.Add3_p;
11705
11706 /* Sum: '<S284>/Add' incorporates:
11707 * Switch: '<S286>/Switch1'
11708 */
11709 L4_MABX_B.Add_a = L4_MABX_B.Product1_ce + L4_MABX_B.UnitDelay_lj;
11710
11711 /* Switch: '<S286>/Switch1' */
11712 L4_MABX_B.Switch1_aq = L4_MABX_B.Add_a;
11713 } else {
11714 /* Switch: '<S286>/Switch1' */
11715 L4_MABX_B.Switch1_aq = L4_MABX_B.UnitDelay_lj;
11716 }
11717
11718 L4_MABX_B.Switch1_pb = L4_MABX_B.Switch1_aq;
11719 }
11720
11721 /* End of Switch: '<S288>/Switch1' */
11722
11723 /* DataTypeConversion: '<S285>/Conversion' */
11724 L4_MABX_B.Conversion_b = L4_MABX_B.Switch1_pb;
11725
11726 /* Gain: '<S80>/mm2m' */
11727 L4_MABX_B.mm2m = L4_MABX_P.mm2m_Gain * L4_MABX_B.correctedError;
11728
11729 /* Switch: '<S80>/Switch3' incorporates:
11730 * Constant: '<S80>/usePIDyForStanley'
11731 */
11732 if (L4_MABX_P.usePIDyForStanley_Value != 0.0) {
11733 L4_MABX_B.Switch3 = L4_MABX_B.Switch2_i;
11734 } else {
11735 L4_MABX_B.Switch3 = L4_MABX_B.mm2m;
11736 }
11737
11738 /* End of Switch: '<S80>/Switch3' */
11739
11740 /* Gain: '<S80>/sign3' */
11741 L4_MABX_B.sign3 = L4_MABX_P.sign3_Gain * L4_MABX_B.Switch3;
11742
11743 /* Sum: '<S80>/crossTrackError' */
11744 L4_MABX_B.crossTrackError = L4_MABX_B.Conversion_b + L4_MABX_B.sign3;
11745
11746 /* Product: '<S278>/Product' */
11747 L4_MABX_B.Product_p = L4_MABX_B.AdjustedStanleyGain *
11748 L4_MABX_B.crossTrackError;
11749
11750 /* Saturate: '<S278>/Saturation' */
11751 DeltaTime = L4_MABX_B.DataTypeConversion_k;
11752 Time56 = L4_MABX_P.Saturation_LowerSat_bq;
11753 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_e;
11754 if (DeltaTime > PositionFinalLimited) {
11755 L4_MABX_B.Saturation_a = PositionFinalLimited;
11756 } else if (DeltaTime < Time56) {
11757 L4_MABX_B.Saturation_a = Time56;
11758 } else {
11759 L4_MABX_B.Saturation_a = DeltaTime;
11760 }
11761
11762 /* End of Saturate: '<S278>/Saturation' */
11763
11764 /* Gain: '<S278>/kph2mps_' */
11765 L4_MABX_B.kph2mps_ = L4_MABX_P.kph2mps_Gain * L4_MABX_B.Saturation_a;
11766
11767 /* Trigonometry: '<S278>/Trigonometric Function' */
11768 L4_MABX_B.TrigonometricFunction_p = rt_atan2d_snf(L4_MABX_B.Product_p,
11769 L4_MABX_B.kph2mps_);
11770
11771 /* Gain: '<S80>/deg2rad1' */
11772 L4_MABX_B.deg2rad1 = L4_MABX_P.deg2rad1_Gain * L4_MABX_B.uDLookupTable1;
11773
11774 /* RateTransition: '<S278>/TmpRTBAtAdd2Inport2' */
11775 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11776 L4_MABX_B.TmpRTBAtAdd2Inport2 = L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0;
11777 }
11778
11779 /* Sum: '<S278>/Add2' */
11780 L4_MABX_B.Add2_g = L4_MABX_B.deg2rad1 - L4_MABX_B.TmpRTBAtAdd2Inport2;
11781
11782 /* Gain: '<S278>/desHeadingWeight' */
11783 L4_MABX_B.desHeadingWeight = L4_MABX_P.desHeadingWeight_Gain *
11784 L4_MABX_B.Add2_g;
11785
11786 /* Sum: '<S278>/Add1' */
11787 L4_MABX_B.Add1_h = L4_MABX_B.TrigonometricFunction_p +
11788 L4_MABX_B.desHeadingWeight;
11789
11790 /* DataTypeConversion: '<S304>/Data Type Conversion' incorporates:
11791 * Constant: '<S304>/RATE_LIMITER_ENABLE_APV'
11792 */
11793 L4_MABX_B.DataTypeConversion_l5 = (real_T)RATE_LIMITER_ENABLE_APV;
11794
11795 /* Lookup_n-D: '<S304>/Saturation Speed Lookup' */
11796 L4_MABX_B.SaturationSpeedLookup = look1_binlcapw
11797 (L4_MABX_B.DataTypeConversion_k, L4_MABX_P.SaturationSpeedLookup_bp01Data,
11798 L4_MABX_P.SaturationSpeedLookup_tableData, 5U);
11799
11800 /* Constant: '<S304>/Constant' */
11801 Lateral_Control_Rate_Limit = Lateral_Control_Rate_Limit_APV;
11802
11803 /* SampleTimeMath: '<S315>/sample time'
11804 *
11805 * About '<S315>/sample time':
11806 * y = K where K = ( w * Ts )
11807 */
11808 L4_MABX_B.sampletime = L4_MABX_P.sampletime_WtEt;
11809
11810 /* Product: '<S315>/delta rise limit' */
11811 L4_MABX_B.deltariselimit = Lateral_Control_Rate_Limit * L4_MABX_B.sampletime;
11812
11813 /* SampleTimeMath: '<S302>/sample time'
11814 *
11815 * About '<S302>/sample time':
11816 * y = K where K = ( w * Ts )
11817 */
11818 L4_MABX_B.sampletime_c = L4_MABX_P.sampletime_WtEt_j;
11819
11820 /* Product: '<S302>/delta rise limit' incorporates:
11821 * Constant: '<S275>/Constant7'
11822 */
11823 L4_MABX_B.deltariselimit_c = Lateral_Control_Error_Rate_Limit *
11824 L4_MABX_B.sampletime_c;
11825
11826 /* MATLAB Function: '<S275>/Error Calc' */
11827 /* MATLAB Function 'STEERCTRL_10ms/SteerController/Error Calc': '<S297>:1' */
11828 /* '<S297>:1:3' */
11829 Lateral_Control_Heading_Error = TargetAzimuth_rad - CurrentAzimuth_rad;
11830 if (Lateral_Control_Heading_Error < -3.1415926535897931) {
11831 /* '<S297>:1:5' */
11832 /* '<S297>:1:6' */
11833 Lateral_Control_Heading_Error += 6.2831853071795862;
11834 } else {
11835 if (Lateral_Control_Heading_Error > 3.1415926535897931) {
11836 /* '<S297>:1:7' */
11837 /* '<S297>:1:8' */
11838 Lateral_Control_Heading_Error -= 6.2831853071795862;
11839 }
11840 }
11841
11842 /* End of MATLAB Function: '<S275>/Error Calc' */
11843
11844 /* UnitDelay: '<S302>/Delay Input2' */
11845 L4_MABX_B.Yk1 = L4_MABX_DW.DelayInput2_DSTATE;
11846
11847 /* Sum: '<S302>/Difference Inputs1' */
11848 L4_MABX_B.UkYk1 = Lateral_Control_Heading_Error - L4_MABX_B.Yk1;
11849
11850 /* RelationalOperator: '<S311>/LowerRelop1' */
11851 L4_MABX_B.LowerRelop1_h = (L4_MABX_B.UkYk1 > L4_MABX_B.deltariselimit_c);
11852
11853 /* Product: '<S302>/delta fall limit' incorporates:
11854 * Constant: '<S275>/Constant8'
11855 */
11856 PositionFinalLimited = -Lateral_Control_Error_Rate_Limit;
11857 L4_MABX_B.deltafalllimit = PositionFinalLimited * L4_MABX_B.sampletime_c;
11858
11859 /* RelationalOperator: '<S311>/UpperRelop' */
11860 L4_MABX_B.UpperRelop_f = (L4_MABX_B.UkYk1 < L4_MABX_B.deltafalllimit);
11861
11862 /* Switch: '<S311>/Switch' */
11863 if (L4_MABX_B.UpperRelop_f) {
11864 L4_MABX_B.Switch_iv = L4_MABX_B.deltafalllimit;
11865 } else {
11866 L4_MABX_B.Switch_iv = L4_MABX_B.UkYk1;
11867 }
11868
11869 /* End of Switch: '<S311>/Switch' */
11870
11871 /* Switch: '<S311>/Switch2' */
11872 if (L4_MABX_B.LowerRelop1_h) {
11873 L4_MABX_B.Switch2_f = L4_MABX_B.deltariselimit_c;
11874 } else {
11875 L4_MABX_B.Switch2_f = L4_MABX_B.Switch_iv;
11876 }
11877
11878 /* End of Switch: '<S311>/Switch2' */
11879
11880 /* Sum: '<S302>/Difference Inputs2' */
11881 L4_MABX_B.DifferenceInputs2 = L4_MABX_B.Switch2_f + L4_MABX_B.Yk1;
11882
11883 /* RelationalOperator: '<S298>/Relational Operator1' incorporates:
11884 * Constant: '<S275>/Constant'
11885 */
11886 L4_MABX_B.RelationalOperator1_ps = (L4_MABX_B.DifferenceInputs2 >=
11887 Lateral_Control_Error_Limit);
11888
11889 /* RelationalOperator: '<S298>/Relational Operator' incorporates:
11890 * Constant: '<S275>/Constant1'
11891 */
11892 PositionFinalLimited = -Lateral_Control_Error_Limit;
11893 L4_MABX_B.RelationalOperator_h = (L4_MABX_B.DifferenceInputs2 <=
11894 PositionFinalLimited);
11895
11896 /* Outputs for Atomic SubSystem: '<S298>/If_Then_Else1' */
11897 /* Constant: '<S275>/Constant1' */
11898 PositionFinalLimited = -Lateral_Control_Error_Limit;
11899 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_h, PositionFinalLimited,
11900 L4_MABX_B.DifferenceInputs2, &L4_MABX_B.If_Then_Else1_km);
11901
11902 /* End of Outputs for SubSystem: '<S298>/If_Then_Else1' */
11903
11904 /* Outputs for Atomic SubSystem: '<S298>/If_Then_Else' */
11905
11906 /* Constant: '<S275>/Constant' */
11907 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ps,
11908 Lateral_Control_Error_Limit,
11909 L4_MABX_B.If_Then_Else1_km.Switch,
11910 &L4_MABX_B.If_Then_Else_pn);
11911
11912 /* End of Outputs for SubSystem: '<S298>/If_Then_Else' */
11913
11914 /* Outputs for Atomic SubSystem: '<S275>/If_Then_Else1' */
11915
11916 /* Constant: '<S275>/Zero' */
11917 L4_MABX_If_Then_Else_g(AutonomousEnabled, L4_MABX_B.If_Then_Else_pn.Switch,
11918 L4_MABX_P.Zero_Value, &L4_MABX_B.If_Then_Else1_m);
11919
11920 /* End of Outputs for SubSystem: '<S275>/If_Then_Else1' */
11921
11922 /* Gain: '<S301>/Proportional Gain' */
11923 L4_MABX_B.ProportionalGain = Lateral_Control_P *
11924 L4_MABX_B.If_Then_Else1_m.Switch;
11925
11926 /* DiscreteIntegrator: '<S301>/Integrator' */
11927 if (AutonomousEnabled && (L4_MABX_DW.Integrator_PrevResetState <= 0)) {
11928 L4_MABX_DW.Integrator_DSTATE = L4_MABX_P.Integrator_IC;
11929 }
11930
11931 L4_MABX_B.Integrator = L4_MABX_DW.Integrator_DSTATE;
11932
11933 /* End of DiscreteIntegrator: '<S301>/Integrator' */
11934
11935 /* Gain: '<S301>/Derivative Gain' */
11936 L4_MABX_B.DerivativeGain = Lateral_Control_D *
11937 L4_MABX_B.If_Then_Else1_m.Switch;
11938
11939 /* DiscreteIntegrator: '<S301>/Filter' */
11940 if (AutonomousEnabled && (L4_MABX_DW.Filter_PrevResetState <= 0)) {
11941 L4_MABX_DW.Filter_DSTATE = L4_MABX_P.Filter_IC;
11942 }
11943
11944 L4_MABX_B.Filter = L4_MABX_DW.Filter_DSTATE;
11945
11946 /* End of DiscreteIntegrator: '<S301>/Filter' */
11947
11948 /* Sum: '<S301>/SumD' */
11949 L4_MABX_B.SumD = L4_MABX_B.DerivativeGain - L4_MABX_B.Filter;
11950
11951 /* Gain: '<S301>/Filter Coefficient' */
11952 L4_MABX_B.FilterCoefficient = L4_MABX_P.PIDController_N * L4_MABX_B.SumD;
11953
11954 /* Sum: '<S301>/Sum' */
11955 L4_MABX_B.Sum_c = (L4_MABX_B.ProportionalGain + L4_MABX_B.Integrator) +
11956 L4_MABX_B.FilterCoefficient;
11957
11958 /* Saturate: '<S301>/Saturate' */
11959 DeltaTime = L4_MABX_B.Sum_c;
11960 Time56 = L4_MABX_P.PIDController_LowerSaturationLi;
11961 PositionFinalLimited = L4_MABX_P.PIDController_UpperSaturationLi;
11962 if (DeltaTime > PositionFinalLimited) {
11963 L4_MABX_B.Saturate = PositionFinalLimited;
11964 } else if (DeltaTime < Time56) {
11965 L4_MABX_B.Saturate = Time56;
11966 } else {
11967 L4_MABX_B.Saturate = DeltaTime;
11968 }
11969
11970 /* End of Saturate: '<S301>/Saturate' */
11971
11972 /* UnitDelay: '<S305>/Delay Input' */
11973 L4_MABX_B.Uk1_m = L4_MABX_DW.DelayInput_DSTATE;
11974
11975 /* Gain: '<S305>/GainZero' */
11976 L4_MABX_B.ZeroUk1 = Lateral_Control_Zero * L4_MABX_B.Uk1_m;
11977
11978 /* UnitDelay: '<S305>/Delay Output' */
11979 L4_MABX_B.Yk1_p = L4_MABX_DW.DelayOutput_DSTATE;
11980
11981 /* Gain: '<S305>/GainPole' */
11982 L4_MABX_B.PoleYk1 = Lateral_Control_Pole * L4_MABX_B.Yk1_p;
11983
11984 /* Sum: '<S305>/Sum' */
11985 L4_MABX_B.PoleYk1UkZeroUk1 = (L4_MABX_B.Saturate - L4_MABX_B.ZeroUk1) +
11986 L4_MABX_B.PoleYk1;
11987
11988 /* DataTypeConversion: '<S305>/Downcast' */
11989 L4_MABX_B.Downcast = L4_MABX_B.PoleYk1UkZeroUk1;
11990
11991 /* Sum: '<S275>/Subtract' incorporates:
11992 * Constant: '<S275>/Constant6'
11993 */
11994 L4_MABX_B.Subtract_c = ReAX_ActualHandwheelPos - REAX_OFFSET_APV;
11995
11996 /* Lookup_n-D: '<S275>/1-D Lookup Table' */
11997 L4_MABX_B.uDLookupTable_j = look1_binlxpw(L4_MABX_B.Subtract_c,
11998 L4_MABX_P.uDLookupTable_bp01Data_d, L4_MABX_P.uDLookupTable_tableData_d, 71U);
11999
12000 /* Gain: '<S275>/deg2rad' */
12001 L4_MABX_B.deg2rad = L4_MABX_P.deg2rad_Gain_l * L4_MABX_B.uDLookupTable_j;
12002
12003 /* Gain: '<S275>/invert' */
12004 L4_MABX_B.invert = L4_MABX_P.invert_Gain_i * L4_MABX_B.deg2rad;
12005
12006 /* Gain: '<S275>/PGain' */
12007 L4_MABX_B.PGain = Lateral_Control_P * L4_MABX_B.If_Then_Else_pn.Switch;
12008
12009 /* SampleTimeMath: '<S303>/sample time'
12010 *
12011 * About '<S303>/sample time':
12012 * y = K where K = ( w * Ts )
12013 */
12014 L4_MABX_B.sampletime_a = L4_MABX_P.sampletime_WtEt_p;
12015
12016 /* Product: '<S303>/delta rise limit' incorporates:
12017 * Constant: '<S275>/Constant9'
12018 */
12019 L4_MABX_B.deltariselimit_o = Lateral_Control_Error_Rate_Limit *
12020 L4_MABX_B.sampletime_a;
12021
12022 /* Sum: '<S275>/Sum' incorporates:
12023 * Constant: '<S275>/YAW_RATE_OFFSET_APV'
12024 */
12025 L4_MABX_B.Sum_ly = YawRate + YAW_RATE_OFFSET_APV;
12026
12027 /* RelationalOperator: '<S306>/Relational Operator1' incorporates:
12028 * Constant: '<S275>/Constant2'
12029 */
12030 L4_MABX_B.RelationalOperator1_f = (L4_MABX_B.Sum_ly >=
12031 Lateral_Control_YawRate_Limit);
12032
12033 /* RelationalOperator: '<S306>/Relational Operator' incorporates:
12034 * Constant: '<S275>/Constant4'
12035 */
12036 PositionFinalLimited = -Lateral_Control_YawRate_Limit;
12037 L4_MABX_B.RelationalOperator_l4 = (L4_MABX_B.Sum_ly <= PositionFinalLimited);
12038
12039 /* Outputs for Atomic SubSystem: '<S306>/If_Then_Else1' */
12040 /* Constant: '<S275>/Constant4' */
12041 PositionFinalLimited = -Lateral_Control_YawRate_Limit;
12042 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_l4, PositionFinalLimited,
12043 L4_MABX_B.Sum_ly, &L4_MABX_B.If_Then_Else1_o);
12044
12045 /* End of Outputs for SubSystem: '<S306>/If_Then_Else1' */
12046
12047 /* Outputs for Atomic SubSystem: '<S306>/If_Then_Else' */
12048
12049 /* Constant: '<S275>/Constant2' */
12050 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_f,
12051 Lateral_Control_YawRate_Limit,
12052 L4_MABX_B.If_Then_Else1_o.Switch,
12053 &L4_MABX_B.If_Then_Else_m0);
12054
12055 /* End of Outputs for SubSystem: '<S306>/If_Then_Else' */
12056
12057 /* Gain: '<S275>/RateFeedbackGain' */
12058 L4_MABX_B.RateFeedbackGain = Yaw_Rate_FF_Gain *
12059 L4_MABX_B.If_Then_Else_m0.Switch;
12060
12061 /* RelationalOperator: '<S296>/Relational Operator1' incorporates:
12062 * Constant: '<S275>/Constant3'
12063 */
12064 L4_MABX_B.RelationalOperator1_gr = (Curvature >=
12065 Lateral_Control_Curvature_Limit);
12066
12067 /* RelationalOperator: '<S296>/Relational Operator' incorporates:
12068 * Constant: '<S275>/Constant5'
12069 */
12070 PositionFinalLimited = -Lateral_Control_Curvature_Limit;
12071 L4_MABX_B.RelationalOperator_o = (Curvature <= PositionFinalLimited);
12072
12073 /* Outputs for Atomic SubSystem: '<S296>/If_Then_Else1' */
12074 /* Constant: '<S275>/Constant5' */
12075 PositionFinalLimited = -Lateral_Control_Curvature_Limit;
12076 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_o, PositionFinalLimited,
12077 Curvature, &L4_MABX_B.If_Then_Else1_d);
12078
12079 /* End of Outputs for SubSystem: '<S296>/If_Then_Else1' */
12080
12081 /* Outputs for Atomic SubSystem: '<S296>/If_Then_Else' */
12082
12083 /* Constant: '<S275>/Constant3' */
12084 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_gr,
12085 Lateral_Control_Curvature_Limit,
12086 L4_MABX_B.If_Then_Else1_d.Switch,
12087 &L4_MABX_B.If_Then_Else_pe);
12088
12089 /* End of Outputs for SubSystem: '<S296>/If_Then_Else' */
12090
12091 /* Gain: '<S275>/FeedforwardGain' */
12092 L4_MABX_B.FeedforwardGain = Curvature_FF_Gain *
12093 L4_MABX_B.If_Then_Else_pe.Switch;
12094
12095 /* Gain: '<S275>/UndersteerCorrection' */
12096 L4_MABX_B.UndersteerCorrection = UndersteerCorection *
12097 L4_MABX_B.FeedforwardGain;
12098
12099 /* Sum: '<S275>/Sum2' */
12100 L4_MABX_B.Sum2 = L4_MABX_B.UndersteerCorrection - L4_MABX_B.RateFeedbackGain;
12101
12102 /* UnitDelay: '<S303>/Delay Input2' */
12103 L4_MABX_B.Yk1_o = L4_MABX_DW.DelayInput2_DSTATE_a;
12104
12105 /* Sum: '<S303>/Difference Inputs1' */
12106 L4_MABX_B.UkYk1_n = L4_MABX_B.Sum2 - L4_MABX_B.Yk1_o;
12107
12108 /* RelationalOperator: '<S312>/LowerRelop1' */
12109 L4_MABX_B.LowerRelop1_o = (L4_MABX_B.UkYk1_n > L4_MABX_B.deltariselimit_o);
12110
12111 /* Product: '<S303>/delta fall limit' incorporates:
12112 * Constant: '<S275>/Constant10'
12113 */
12114 PositionFinalLimited = -Lateral_Control_Error_Rate_Limit;
12115 L4_MABX_B.deltafalllimit_o = PositionFinalLimited * L4_MABX_B.sampletime_a;
12116
12117 /* RelationalOperator: '<S312>/UpperRelop' */
12118 L4_MABX_B.UpperRelop_o = (L4_MABX_B.UkYk1_n < L4_MABX_B.deltafalllimit_o);
12119
12120 /* Switch: '<S312>/Switch' */
12121 if (L4_MABX_B.UpperRelop_o) {
12122 L4_MABX_B.Switch_e = L4_MABX_B.deltafalllimit_o;
12123 } else {
12124 L4_MABX_B.Switch_e = L4_MABX_B.UkYk1_n;
12125 }
12126
12127 /* End of Switch: '<S312>/Switch' */
12128
12129 /* Switch: '<S312>/Switch2' */
12130 if (L4_MABX_B.LowerRelop1_o) {
12131 L4_MABX_B.Switch2_e = L4_MABX_B.deltariselimit_o;
12132 } else {
12133 L4_MABX_B.Switch2_e = L4_MABX_B.Switch_e;
12134 }
12135
12136 /* End of Switch: '<S312>/Switch2' */
12137
12138 /* Sum: '<S303>/Difference Inputs2' */
12139 L4_MABX_B.DifferenceInputs2_a = L4_MABX_B.Switch2_e + L4_MABX_B.Yk1_o;
12140
12141 /* Sum: '<S275>/Sum3' */
12142 L4_MABX_B.Sum3 = (L4_MABX_B.invert - L4_MABX_B.PGain) -
12143 L4_MABX_B.DifferenceInputs2_a;
12144
12145 /* DiscreteIntegrator: '<S295>/Discrete-Time Integrator' */
12146 if (L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI != 0) {
12147 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE = L4_MABX_B.Sum3;
12148 }
12149
12150 if (AutonomousEnabled && (L4_MABX_DW.DiscreteTimeIntegrator_PrevRese <= 0)) {
12151 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE = L4_MABX_B.Sum3;
12152 }
12153
12154 L4_MABX_B.DiscreteTimeIntegrator = L4_MABX_DW.DiscreteTimeIntegrator_DSTATE;
12155
12156 /* End of DiscreteIntegrator: '<S295>/Discrete-Time Integrator' */
12157
12158 /* Sum: '<S275>/Sum4' */
12159 L4_MABX_B.Sum4 = L4_MABX_B.Downcast + L4_MABX_B.DiscreteTimeIntegrator;
12160
12161 /* Sum: '<S275>/Sum1' */
12162 Lateral_Control_Output = L4_MABX_B.Sum4 + L4_MABX_B.DifferenceInputs2_a;
12163
12164 /* UnitDelay: '<S315>/Delay Input2' */
12165 L4_MABX_B.Yk1_pm = L4_MABX_DW.DelayInput2_DSTATE_l;
12166
12167 /* Sum: '<S315>/Difference Inputs1' */
12168 L4_MABX_B.UkYk1_f = Lateral_Control_Output - L4_MABX_B.Yk1_pm;
12169
12170 /* RelationalOperator: '<S317>/LowerRelop1' */
12171 L4_MABX_B.LowerRelop1_l = (L4_MABX_B.UkYk1_f > L4_MABX_B.deltariselimit);
12172
12173 /* Gain: '<S304>/Gain3' */
12174 L4_MABX_B.RateLimitLower = L4_MABX_P.Gain3_Gain_p * Lateral_Control_Rate_Limit;
12175
12176 /* Product: '<S315>/delta fall limit' */
12177 L4_MABX_B.deltafalllimit_n = L4_MABX_B.RateLimitLower * L4_MABX_B.sampletime;
12178
12179 /* RelationalOperator: '<S317>/UpperRelop' */
12180 L4_MABX_B.UpperRelop_k = (L4_MABX_B.UkYk1_f < L4_MABX_B.deltafalllimit_n);
12181
12182 /* Switch: '<S317>/Switch' */
12183 if (L4_MABX_B.UpperRelop_k) {
12184 L4_MABX_B.Switch_f = L4_MABX_B.deltafalllimit_n;
12185 } else {
12186 L4_MABX_B.Switch_f = L4_MABX_B.UkYk1_f;
12187 }
12188
12189 /* End of Switch: '<S317>/Switch' */
12190
12191 /* Switch: '<S317>/Switch2' */
12192 if (L4_MABX_B.LowerRelop1_l) {
12193 L4_MABX_B.Switch2_fa = L4_MABX_B.deltariselimit;
12194 } else {
12195 L4_MABX_B.Switch2_fa = L4_MABX_B.Switch_f;
12196 }
12197
12198 /* End of Switch: '<S317>/Switch2' */
12199
12200 /* Sum: '<S315>/Difference Inputs2' */
12201 L4_MABX_B.DifferenceInputs2_m = L4_MABX_B.Switch2_fa + L4_MABX_B.Yk1_pm;
12202
12203 /* RelationalOperator: '<S316>/LowerRelop1' */
12204 L4_MABX_B.LowerRelop1_e = (L4_MABX_B.DifferenceInputs2_m >
12205 L4_MABX_B.SaturationSpeedLookup);
12206
12207 /* Gain: '<S304>/Gain1' */
12208 L4_MABX_B.Gain1_f = L4_MABX_P.Gain1_Gain_p * L4_MABX_B.SaturationSpeedLookup;
12209
12210 /* RelationalOperator: '<S316>/UpperRelop' */
12211 L4_MABX_B.UpperRelop_fl = (L4_MABX_B.DifferenceInputs2_m < L4_MABX_B.Gain1_f);
12212
12213 /* Switch: '<S316>/Switch' */
12214 if (L4_MABX_B.UpperRelop_fl) {
12215 L4_MABX_B.Switch_hx = L4_MABX_B.Gain1_f;
12216 } else {
12217 L4_MABX_B.Switch_hx = L4_MABX_B.DifferenceInputs2_m;
12218 }
12219
12220 /* End of Switch: '<S316>/Switch' */
12221
12222 /* Switch: '<S316>/Switch2' */
12223 if (L4_MABX_B.LowerRelop1_e) {
12224 L4_MABX_B.Switch2_k = L4_MABX_B.SaturationSpeedLookup;
12225 } else {
12226 L4_MABX_B.Switch2_k = L4_MABX_B.Switch_hx;
12227 }
12228
12229 /* End of Switch: '<S316>/Switch2' */
12230
12231 /* Outputs for Atomic SubSystem: '<S304>/If_Then_Else' */
12232 L4_MABX_If_Then_Else_c(L4_MABX_B.DataTypeConversion_l5, L4_MABX_B.Switch2_k,
12233 Lateral_Control_Output, &L4_MABX_B.If_Then_Else_c);
12234
12235 /* End of Outputs for SubSystem: '<S304>/If_Then_Else' */
12236
12237 /* SignalConversion: '<S304>/TmpSignal ConversionAtIf_Then_ElseOutport1' */
12238 Lateral_Control_Rate_Limiter_Output = L4_MABX_B.If_Then_Else_c.Switch;
12239
12240 /* MATLAB Function: '<S274>/Error Calc' */
12241 /* MATLAB Function 'STEERCTRL_10ms/StanleyController/Error Calc': '<S293>:1' */
12242 /* '<S293>:1:3' */
12243 L4_MABX_B.error = TargetAzimuth_rad - CurrentAzimuth_rad;
12244 if (L4_MABX_B.error < -3.1415926535897931) {
12245 /* '<S293>:1:5' */
12246 /* '<S293>:1:6' */
12247 L4_MABX_B.error += 6.2831853071795862;
12248 } else {
12249 if (L4_MABX_B.error > 3.1415926535897931) {
12250 /* '<S293>:1:7' */
12251 /* '<S293>:1:8' */
12252 L4_MABX_B.error -= 6.2831853071795862;
12253 }
12254 }
12255
12256 /* End of MATLAB Function: '<S274>/Error Calc' */
12257
12258 /* MultiPortSwitch: '<S80>/Multiport Switch2' incorporates:
12259 * Constant: '<S80>/LAT_STEER_SRC_SELECTOR_APV'
12260 */
12261 if (LAT_STEER_SRC_SELECTOR_APV == ENUM_LAT_STEER_SOURCE_T_PIC_HARIS) {
12262 /* Outputs for Atomic SubSystem: '<S275>/If_Then_Else' */
12263 L4_MABX_If_Then_Else_g(AutonomousEnabled,
12264 Lateral_Control_Rate_Limiter_Output, L4_MABX_B.invert,
12265 &L4_MABX_B.If_Then_Else_m1);
12266
12267 /* End of Outputs for SubSystem: '<S275>/If_Then_Else' */
12268 L4_MABX_B.MultiportSwitch2 = L4_MABX_B.If_Then_Else_m1.Switch;
12269 } else {
12270 /* Saturate: '<S274>/Speed Saturation' */
12271 DeltaTime = L4_MABX_B.DataTypeConversion_k;
12272 Time56 = L4_MABX_P.SpeedSaturation_LowerSat;
12273 PositionFinalLimited = L4_MABX_P.SpeedSaturation_UpperSat;
12274 if (DeltaTime > PositionFinalLimited) {
12275 L4_MABX_B.SpeedSaturation = PositionFinalLimited;
12276 } else if (DeltaTime < Time56) {
12277 L4_MABX_B.SpeedSaturation = Time56;
12278 } else {
12279 L4_MABX_B.SpeedSaturation = DeltaTime;
12280 }
12281
12282 /* End of Saturate: '<S274>/Speed Saturation' */
12283
12284 /* Gain: '<S274>/km//h to m//s' */
12285 L4_MABX_B.kmhtoms = L4_MABX_P.kmhtoms_Gain * L4_MABX_B.SpeedSaturation;
12286
12287 /* Product: '<S274>/Product' incorporates:
12288 * Constant: '<S274>/StanleySteeringControlGain'
12289 */
12290 L4_MABX_B.Product_n = STANLEY_GAIN_APV * CrosstrackError;
12291
12292 /* Trigonometry: '<S274>/Trigonometric Function' */
12293 L4_MABX_B.TrigonometricFunction_l = rt_atan2d_snf(L4_MABX_B.Product_n,
12294 L4_MABX_B.kmhtoms);
12295
12296 /* Saturate: '<S274>/Error Saturation' */
12297 DeltaTime = L4_MABX_B.error;
12298 Time56 = L4_MABX_P.ErrorSaturation_LowerSat;
12299 PositionFinalLimited = L4_MABX_P.ErrorSaturation_UpperSat;
12300 if (DeltaTime > PositionFinalLimited) {
12301 L4_MABX_B.ErrorSaturation = PositionFinalLimited;
12302 } else if (DeltaTime < Time56) {
12303 L4_MABX_B.ErrorSaturation = Time56;
12304 } else {
12305 L4_MABX_B.ErrorSaturation = DeltaTime;
12306 }
12307
12308 /* End of Saturate: '<S274>/Error Saturation' */
12309
12310 /* Sum: '<S274>/Sum1' */
12311 L4_MABX_B.Sum1 = L4_MABX_B.ErrorSaturation +
12312 L4_MABX_B.TrigonometricFunction_l;
12313
12314 /* Sum: '<S274>/Subtract' incorporates:
12315 * Constant: '<S274>/ReAX Offset'
12316 */
12317 L4_MABX_B.Subtract_ej = ReAX_ActualHandwheelPos - REAX_OFFSET_APV;
12318
12319 /* Lookup_n-D: '<S274>/1-D Lookup Table' */
12320 L4_MABX_B.uDLookupTable_h = look1_binlxpw(L4_MABX_B.Subtract_ej,
12321 L4_MABX_P.uDLookupTable_bp01Data_k, L4_MABX_P.uDLookupTable_tableData_k,
12322 71U);
12323
12324 /* Gain: '<S274>/deg2rad' */
12325 L4_MABX_B.deg2rad_o = L4_MABX_P.deg2rad_Gain_n * L4_MABX_B.uDLookupTable_h;
12326
12327 /* Gain: '<S274>/invert' */
12328 L4_MABX_B.invert_d = L4_MABX_P.invert_Gain * L4_MABX_B.deg2rad_o;
12329
12330 /* Outputs for Atomic SubSystem: '<S274>/If_Then_Else' */
12331 L4_MABX_If_Then_Else_g(AutonomousEnabled, L4_MABX_B.Sum1, L4_MABX_B.invert_d,
12332 &L4_MABX_B.If_Then_Else_nh);
12333
12334 /* End of Outputs for SubSystem: '<S274>/If_Then_Else' */
12335 L4_MABX_B.MultiportSwitch2 = L4_MABX_B.If_Then_Else_nh.Switch;
12336 }
12337
12338 /* End of MultiPortSwitch: '<S80>/Multiport Switch2' */
12339
12340 /* DataTypeConversion: '<S80>/Data Type Conversion6' */
12341 L4_MABX_B.DataTypeConversion6_p = L4_MABX_B.MultiportSwitch2;
12342
12343 /* Gain: '<S80>/rad2deg' */
12344 L4_MABX_B.rad2deg = L4_MABX_P.rad2deg_Gain * L4_MABX_B.DataTypeConversion6_p;
12345
12346 /* Gain: '<S80>/sign flip' */
12347 SteerCommandDeg = L4_MABX_P.signflip_Gain * L4_MABX_B.rad2deg;
12348
12349 /* MultiPortSwitch: '<S80>/Multiport Switch1' incorporates:
12350 * Constant: '<S80>/LONG_SPEED_SRC_SELECTOR_APV'
12351 * Constant: '<S80>/SteeringOverrideVal1'
12352 */
12353 switch (LONG_SPEED_SRC_SELECTOR_APV) {
12354 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
12355 /* MultiPortSwitch: '<S80>/Multiport Switch' incorporates:
12356 * Constant: '<S80>/SteeringControlSRC'
12357 * Constant: '<S80>/SteeringOverrideVal'
12358 */
12359 switch (L4_MABX_P.SteeringControlSRC_Value) {
12360 case 0:
12361 L4_MABX_B.MultiportSwitch_f = L4_MABX_P.SteeringOverrideVal_Value;
12362 break;
12363
12364 case 1:
12365 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.Switch2_i;
12366 break;
12367
12368 case 2:
12369 /* DataTypeConversion: '<S80>/Data Type Conversion2' */
12370 L4_MABX_B.DataTypeConversion2_ox1 = L4_MABX_B.Add2;
12371 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.DataTypeConversion2_ox1;
12372 break;
12373
12374 default:
12375 /* DataTypeConversion: '<S80>/Data Type Conversion3' */
12376 L4_MABX_B.DataTypeConversion3_pl = L4_MABX_B.Add1_h;
12377 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.DataTypeConversion3_pl;
12378 break;
12379 }
12380
12381 /* End of MultiPortSwitch: '<S80>/Multiport Switch' */
12382
12383 /* Gain: '<S80>/rad2deg2' */
12384 L4_MABX_B.rad2deg2 = L4_MABX_P.rad2deg2_Gain * L4_MABX_B.MultiportSwitch_f;
12385 L4_MABX_B.MultiportSwitch1 = L4_MABX_B.rad2deg2;
12386 break;
12387
12388 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
12389 L4_MABX_B.MultiportSwitch1 = L4_MABX_P.SteeringOverrideVal1_Value;
12390 break;
12391
12392 default:
12393 L4_MABX_B.MultiportSwitch1 = SteerCommandDeg;
12394 break;
12395 }
12396
12397 /* End of MultiPortSwitch: '<S80>/Multiport Switch1' */
12398
12399 /* Lookup_n-D: '<S270>/1D_Lookup_Table' */
12400 L4_MABX_B.uD_Lookup_Table_a = look1_binlcapw(L4_MABX_B.MultiportSwitch1,
12401 STEERCTRL_WHEEL_ANGLE_STEP_MPV, STEERCTRL_WHEEL_ANGLE_DATA_MPV, 71U);
12402
12403 /* DataTypeConversion: '<S80>/Data Type Conversion4' */
12404 L4_MABX_B.numLanePoints_j = L4_MABX_B.DataTypeConversion5_e3;
12405
12406 /* DiscreteIntegrator: '<S80>/Discrete-Time Integrator' incorporates:
12407 * Constant: '<S80>/ResetIntegrator'
12408 */
12409 if ((L4_MABX_P.ResetIntegrator_Value != 0.0) ||
12410 (L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e != 0)) {
12411 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12412 L4_MABX_P.DiscreteTimeIntegrator_IC;
12413 }
12414
12415 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e >=
12416 L4_MABX_P.DiscreteTimeIntegrator_UpperSat) {
12417 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12418 L4_MABX_P.DiscreteTimeIntegrator_UpperSat;
12419 } else {
12420 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e <=
12421 L4_MABX_P.DiscreteTimeIntegrator_LowerSat) {
12422 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12423 L4_MABX_P.DiscreteTimeIntegrator_LowerSat;
12424 }
12425 }
12426
12427 L4_MABX_B.DiscreteTimeIntegrator_h =
12428 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e;
12429
12430 /* End of DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
12431
12432 /* RelationalOperator: '<S282>/Lower Test' incorporates:
12433 * Constant: '<S282>/Lower Limit'
12434 */
12435 L4_MABX_B.LowerTest = (L4_MABX_P.IntervalTest_lowlimit <= L4_MABX_B.Divide_nn);
12436
12437 /* RelationalOperator: '<S282>/Upper Test' incorporates:
12438 * Constant: '<S282>/Upper Limit'
12439 */
12440 L4_MABX_B.UpperTest = (L4_MABX_B.Divide_nn <= L4_MABX_P.IntervalTest_uplimit);
12441
12442 /* Logic: '<S282>/AND' */
12443 L4_MABX_B.AND_p = (L4_MABX_B.LowerTest && L4_MABX_B.UpperTest);
12444
12445 /* Assertion: '<S279>/Assertion' */
12446 utAssert(L4_MABX_B.AND_p);
12447
12448 /* RelationalOperator: '<S287>/Lower Test' incorporates:
12449 * Constant: '<S287>/Lower Limit'
12450 */
12451 L4_MABX_B.LowerTest_l = (L4_MABX_P.IntervalTest_lowlimit_k <=
12452 L4_MABX_B.Divide_d0);
12453
12454 /* RelationalOperator: '<S287>/Upper Test' incorporates:
12455 * Constant: '<S287>/Upper Limit'
12456 */
12457 L4_MABX_B.UpperTest_e = (L4_MABX_B.Divide_d0 <=
12458 L4_MABX_P.IntervalTest_uplimit_e);
12459
12460 /* Logic: '<S287>/AND' */
12461 L4_MABX_B.AND_j = (L4_MABX_B.LowerTest_l && L4_MABX_B.UpperTest_e);
12462
12463 /* Assertion: '<S284>/Assertion' */
12464 utAssert(L4_MABX_B.AND_j);
12465
12466 /* Switch: '<S290>/Switch' incorporates:
12467 * Constant: '<S273>/Constant8'
12468 * Constant: '<S273>/Constant9'
12469 */
12470 if (L4_MABX_P.Constant8_Value_l) {
12471 L4_MABX_B.Switch_k = L4_MABX_P.Constant9_Value;
12472 } else {
12473 L4_MABX_B.Switch_k = L4_MABX_B.Add_px;
12474 }
12475
12476 /* End of Switch: '<S290>/Switch' */
12477
12478 /* RelationalOperator: '<S80>/Relational Operator' incorporates:
12479 * Constant: '<S80>/Constant1'
12480 */
12481 L4_MABX_B.RelationalOperator_oq = (L4_MABX_B.DataTypeConversion5_e3 >=
12482 L4_MABX_P.Constant1_Value_ls);
12483
12484 /* Gain: '<S295>/Gain' */
12485 L4_MABX_B.Gain_o = L4_MABX_P.Gain_Gain_p * L4_MABX_B.DiscreteTimeIntegrator;
12486
12487 /* Gain: '<S301>/Integral Gain' */
12488 L4_MABX_B.IntegralGain = Lateral_Control_I * L4_MABX_B.If_Then_Else1_m.Switch;
12489
12490 /* Abs: '<S304>/Abs' */
12491 L4_MABX_B.Abs_ig = fabs(L4_MABX_B.If_Then_Else_pe.Switch);
12492
12493 /* Abs: '<S304>/Abs1' */
12494 L4_MABX_B.Abs1_ft = fabs(L4_MABX_B.DifferenceInputs2);
12495
12496 /* Sum: '<S304>/Subtract' */
12497 L4_MABX_B.Subtract_og = Lateral_Control_Output - L4_MABX_B.DifferenceInputs2_m;
12498
12499 /* Abs: '<S304>/Abs2' */
12500 L4_MABX_B.Abs2_k = fabs(L4_MABX_B.Subtract_og);
12501
12502 /* RelationalOperator: '<S313>/Compare' incorporates:
12503 * Constant: '<S313>/Constant'
12504 */
12505 RateLimiterActive = (L4_MABX_B.Abs2_k > L4_MABX_P.CompareToConstant_const_g);
12506
12507 /* Lookup_n-D: '<S304>/Curvature Lookup Table' */
12508 L4_MABX_B.RateCurvature = look1_binlcapw(L4_MABX_B.Abs_ig,
12509 L4_MABX_P.CurvatureLookupTable_bp01Data,
12510 L4_MABX_P.CurvatureLookupTable_tableData, 4U);
12511
12512 /* Lookup_n-D: '<S304>/Error Lookup Table' */
12513 L4_MABX_B.RateError = look1_binlcapw(L4_MABX_B.Abs1_ft,
12514 L4_MABX_P.ErrorLookupTable_bp01Data, L4_MABX_P.ErrorLookupTable_tableData,
12515 4U);
12516
12517 /* MinMax: '<S304>/Max' */
12518 DeltaTime = L4_MABX_B.RateCurvature;
12519 PositionFinalLimited = L4_MABX_B.RateError;
12520 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
12521 PositionFinalLimited = DeltaTime;
12522 }
12523
12524 L4_MABX_B.Max = PositionFinalLimited;
12525
12526 /* End of MinMax: '<S304>/Max' */
12527
12528 /* Lookup_n-D: '<S304>/Speed Lookup Table' */
12529 L4_MABX_B.RateSpeed = look1_binlcapw(L4_MABX_B.DataTypeConversion_k,
12530 L4_MABX_P.SpeedLookupTable_bp01Data, L4_MABX_P.SpeedLookupTable_tableData,
12531 5U);
12532
12533 /* MinMax: '<S304>/Min' */
12534 DeltaTime = L4_MABX_B.Max;
12535 PositionFinalLimited = L4_MABX_B.RateSpeed;
12536 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
12537 PositionFinalLimited = DeltaTime;
12538 }
12539
12540 L4_MABX_B.Min = PositionFinalLimited;
12541
12542 /* End of MinMax: '<S304>/Min' */
12543
12544 /* RateLimiter: '<S304>/Limit Rate Limiter' */
12545 PositionFinalLimited = L4_MABX_B.Min - L4_MABX_DW.PrevY;
12546 if (PositionFinalLimited > L4_MABX_P.LimitRateLimiter_RisingLim) {
12547 L4_MABX_B.RateLimitUpper = L4_MABX_DW.PrevY +
12548 L4_MABX_P.LimitRateLimiter_RisingLim;
12549 } else if (PositionFinalLimited < L4_MABX_P.LimitRateLimiter_FallingLim) {
12550 L4_MABX_B.RateLimitUpper = L4_MABX_DW.PrevY +
12551 L4_MABX_P.LimitRateLimiter_FallingLim;
12552 } else {
12553 L4_MABX_B.RateLimitUpper = L4_MABX_B.Min;
12554 }
12555
12556 L4_MABX_DW.PrevY = L4_MABX_B.RateLimitUpper;
12557
12558 /* End of RateLimiter: '<S304>/Limit Rate Limiter' */
12559
12560 /* Gain: '<S80>/sign2' */
12561 DesiredSteeringAngle = L4_MABX_P.sign2_Gain * L4_MABX_B.uD_Lookup_Table_a;
12562
12563 /* Sum: '<S80>/Subtract' incorporates:
12564 * Constant: '<S80>/Constant'
12565 */
12566 L4_MABX_B.Subtract_c1 = DesiredSteeringAngle + REAX_OFFSET_APV;
12567
12568 /* UnitDelay: '<S80>/Unit Delay' */
12569 L4_MABX_B.UnitDelay_p = L4_MABX_DW.UnitDelay_DSTATE_e;
12570
12571 /* Switch: '<S80>/Switch1' incorporates:
12572 * Constant: '<S80>/Constant2'
12573 * Switch: '<S80>/Switch2'
12574 */
12575 if (L4_MABX_B.RelationalOperator_oq) {
12576 /* Product: '<S80>/Product3' incorporates:
12577 * Constant: '<S80>/SteeringControlNewIGain1'
12578 */
12579 L4_MABX_B.Product3 = L4_MABX_B.mm2m *
12580 L4_MABX_P.SteeringControlNewIGain1_Value;
12581 L4_MABX_B.Switch1_p = L4_MABX_B.Product3;
12582
12583 /* Gain: '<S80>/deg2rad' */
12584 L4_MABX_B.deg2rad_d = L4_MABX_P.deg2rad_Gain * L4_MABX_B.SFunction1_o1_cd;
12585
12586 /* Product: '<S80>/Product2' incorporates:
12587 * Constant: '<S80>/SteeringControlNewPGain1'
12588 */
12589 L4_MABX_B.Product2_my = L4_MABX_B.deg2rad_d *
12590 L4_MABX_P.SteeringControlNewPGain1_Value;
12591 L4_MABX_B.Switch2_i1 = L4_MABX_B.Product2_my;
12592 } else {
12593 L4_MABX_B.Switch1_p = L4_MABX_P.Constant2_Value_n;
12594 L4_MABX_B.Switch2_i1 = L4_MABX_B.UnitDelay_p;
12595 }
12596
12597 /* End of Switch: '<S80>/Switch1' */
12598
12599 /* RelationalOperator: '<S347>/min_relop' incorporates:
12600 * Constant: '<S347>/min_val'
12601 */
12602 L4_MABX_B.min_relop_k = (L4_MABX_P.CheckStaticLowerBound_min_o <=
12603 L4_MABX_B.Divide_e);
12604
12605 /* Assertion: '<S347>/Assertion' */
12606 utAssert(L4_MABX_B.min_relop_k);
12607
12608 /* Logic: '<S356>/Logical Operator2' */
12609 L4_MABX_B.LogicalOperator2_gg = !L4_MABX_B.LogicalOperator1_p;
12610
12611 /* Switch: '<S365>/Reset' incorporates:
12612 * Constant: '<S360>/CPV'
12613 */
12614 if (L4_MABX_B.LogicalOperator1_ja) {
12615 L4_MABX_B.Xnew = L4_MABX_P.CPV_Value_h;
12616 } else {
12617 L4_MABX_B.Xnew = L4_MABX_B.If_Then_Else_gf.Switch;
12618 }
12619
12620 /* End of Switch: '<S365>/Reset' */
12621
12622 /* UnitDelay: '<S367>/FixPt Unit Delay2' */
12623 L4_MABX_B.FixPtUnitDelay2_j = L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw;
12624
12625 /* Logic: '<S367>/FixPt Logical Operator' */
12626 L4_MABX_B.FixPtLogicalOperator_i = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
12627 (L4_MABX_B.FixPtUnitDelay2_j != 0));
12628
12629 /* UnitDelay: '<S367>/FixPt Unit Delay1' */
12630 L4_MABX_B.Xold_d = L4_MABX_DW.FixPtUnitDelay1_DSTATE_p;
12631
12632 /* Switch: '<S367>/Init' incorporates:
12633 * Constant: '<S361>/CPV'
12634 */
12635 if (L4_MABX_B.FixPtLogicalOperator_i != 0) {
12636 L4_MABX_B.Init_oa = L4_MABX_P.CPV_Value_n;
12637 } else {
12638 L4_MABX_B.Init_oa = L4_MABX_B.Xold_d;
12639 }
12640
12641 /* End of Switch: '<S367>/Init' */
12642
12643 /* UnitDelay: '<S368>/FixPt Unit Delay2' */
12644 L4_MABX_B.FixPtUnitDelay2_m = L4_MABX_DW.FixPtUnitDelay2_DSTATE_g;
12645
12646 /* Logic: '<S368>/FixPt Logical Operator' */
12647 L4_MABX_B.FixPtLogicalOperator_b = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
12648 (L4_MABX_B.FixPtUnitDelay2_m != 0));
12649
12650 /* UnitDelay: '<S368>/FixPt Unit Delay1' */
12651 L4_MABX_B.Xold_mg = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g0;
12652
12653 /* Switch: '<S368>/Init' incorporates:
12654 * Constant: '<S359>/CPV2'
12655 */
12656 if (L4_MABX_B.FixPtLogicalOperator_b != 0) {
12657 L4_MABX_B.Init_l = L4_MABX_P.CPV2_Value_p;
12658 } else {
12659 L4_MABX_B.Init_l = L4_MABX_B.Xold_mg;
12660 }
12661
12662 /* End of Switch: '<S368>/Init' */
12663
12664 /* MultiPortSwitch: '<S366>/Multiport Switch' incorporates:
12665 * Constant: '<S359>/CPV2'
12666 * Constant: '<S366>/Integrator_method'
12667 */
12668 switch ((int32_T)L4_MABX_P.Integrator_method_Value) {
12669 case 1:
12670 L4_MABX_B.MultiportSwitch_i = L4_MABX_P.CPV2_Value_p;
12671 break;
12672
12673 case 2:
12674 L4_MABX_B.MultiportSwitch_i = L4_MABX_B.Init_l;
12675 break;
12676
12677 default:
12678 /* Sum: '<S366>/Add' incorporates:
12679 * Constant: '<S359>/CPV2'
12680 */
12681 L4_MABX_B.Add_py = L4_MABX_B.Init_l + L4_MABX_P.CPV2_Value_p;
12682
12683 /* Gain: '<S366>/Gain' */
12684 L4_MABX_B.u_trapezoidal = L4_MABX_P.Gain_Gain_j * L4_MABX_B.Add_py;
12685 L4_MABX_B.MultiportSwitch_i = L4_MABX_B.u_trapezoidal;
12686 break;
12687 }
12688
12689 /* End of MultiPortSwitch: '<S366>/Multiport Switch' */
12690
12691 /* DigitalClock: '<S362>/Digital Clock' */
12692 L4_MABX_B.DigitalClock_d = L4_MABX_M->Timing.t[0];
12693
12694 /* UnitDelay: '<S362>/Unit_Delay' */
12695 L4_MABX_B.Unit_Delay_pa = L4_MABX_DW.Unit_Delay_DSTATE_j;
12696
12697 /* Sum: '<S362>/Subtract' */
12698 L4_MABX_B.Subtract_k = L4_MABX_B.DigitalClock_d - L4_MABX_B.Unit_Delay_pa;
12699
12700 /* Product: '<S361>/Product1' incorporates:
12701 * Constant: '<S359>/CPV'
12702 */
12703 L4_MABX_B.Product1_am = L4_MABX_P.CPV_Value_g * L4_MABX_B.MultiportSwitch_i *
12704 L4_MABX_B.Subtract_k;
12705
12706 /* Sum: '<S361>/Add' */
12707 L4_MABX_B.Add_db = L4_MABX_B.Init_oa + L4_MABX_B.Product1_am;
12708
12709 /* Switch: '<S368>/Reset' incorporates:
12710 * Constant: '<S359>/CPV2'
12711 */
12712 L4_MABX_B.Xnew_f = L4_MABX_P.CPV2_Value_p;
12713
12714 /* Switch: '<S367>/Reset' incorporates:
12715 * Constant: '<S361>/CPV'
12716 */
12717 if (L4_MABX_B.LogicalOperator1_ja) {
12718 L4_MABX_B.Xnew_h = L4_MABX_P.CPV_Value_n;
12719 } else {
12720 L4_MABX_B.Xnew_h = L4_MABX_B.Add_db;
12721 }
12722
12723 /* End of Switch: '<S367>/Reset' */
12724
12725 /* RelationalOperator: '<S375>/min_relop' incorporates:
12726 * Constant: '<S339>/FCW_CTRL_SLEW_INC_APV'
12727 * Constant: '<S375>/min_val'
12728 */
12729 L4_MABX_B.min_relop_cb = (L4_MABX_P.CheckStaticLowerBound_min_h <=
12730 L4_MABX_P.FCW_CTRL_SLEW_INC_APV_Value);
12731
12732 /* Assertion: '<S375>/Assertion' */
12733 utAssert(L4_MABX_B.min_relop_cb);
12734
12735 /* RelationalOperator: '<S386>/min_relop' incorporates:
12736 * Constant: '<S341>/STABILITY_CTRL_SLEW_INC_APV'
12737 * Constant: '<S386>/min_val'
12738 */
12739 L4_MABX_B.min_relop_fb = (L4_MABX_P.CheckStaticLowerBound_min_nz <=
12740 L4_MABX_P.STABILITY_CTRL_SLEW_INC_APV_Val);
12741
12742 /* Assertion: '<S386>/Assertion' */
12743 utAssert(L4_MABX_B.min_relop_fb);
12744
12745 /* End of Outputs for SubSystem: '<S65>/Task_10ms' */
12746
12747 /* Outputs for Enabled SubSystem: '<S620>/PosRapidUpdate_011' incorporates:
12748 * EnablePort: '<S621>/Enable'
12749 */
12750 /* Constant: '<S443>/Constant' */
12751 if (L4_MABX_P.Constant_Value_n5 > 0.0) {
12752 /* S-Function (rti_commonblock): '<S621>/S-Function1' */
12753 /* This comment workarounds a code generation problem */
12754
12755 /* dSPACE RTICAN RX Message Block: "PosRapidUpdate_01" Id:167248128 */
12756 {
12757 UInt32 *CAN_Msg;
12758 static dsfloat time_old = 0.0;
12759
12760 /* Read status and timestamp info (previous message) */
12761 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].timestamp !=
12762 time_old) {
12763 /* ... save timestamp info for the calculation of the RX status
12764 during the consecutive sample hit*/
12765 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].
12766 timestamp;
12767
12768 /* ... set the processed flag to one */
12769 L4_MABX_B.SFunction1_o3_ol = 1.0;
12770 L4_MABX_B.SFunction1_o4_i = (real_T)
12771 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].timestamp;
12772 L4_MABX_B.SFunction1_o5_go = (real_T)
12773 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].deltatime;
12774 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].data;
12775
12776 /* Decode CAN message */
12777 {
12778 {
12779 rtican_Signal_t CAN_Sgn;
12780
12781 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
12782 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12783 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
12784 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
12785 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
12786 L4_MABX_B.SFunction1_o1_ged = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12787 );
12788
12789 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
12790 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12791 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12792 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
12793 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
12794 L4_MABX_B.SFunction1_o2_n5 = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12795 );
12796 }
12797 }
12798 } else {
12799 /* set RX status to 0 because no new message has arrived */
12800 L4_MABX_B.SFunction1_o3_ol = 0.0;
12801 }
12802 }
12803 }
12804
12805 /* End of Outputs for SubSystem: '<S620>/PosRapidUpdate_011' */
12806
12807 /* Outputs for Atomic SubSystem: '<S461>/If_Then_Else' */
12808
12809 /* Constant: '<S461>/useGPSSA00' incorporates:
12810 * Constant: '<S461>/useGPSSA0'
12811 */
12812 L4_MABX_If_Then_Else3(L4_MABX_B.LogicalOperator1_h, L4_MABX_P.useGPSSA00_Value,
12813 L4_MABX_P.useGPSSA0_Value, &L4_MABX_B.If_Then_Else);
12814
12815 /* End of Outputs for SubSystem: '<S461>/If_Then_Else' */
12816
12817 /* Outputs for Enabled SubSystem: '<S620>/PosRapidUpdate_1' incorporates:
12818 * EnablePort: '<S622>/Enable'
12819 */
12820 /* Constant: '<S443>/Constant' */
12821 if (L4_MABX_P.Constant_Value_n5 > 0.0) {
12822 /* S-Function (rti_commonblock): '<S622>/S-Function1' */
12823 /* This comment workarounds a code generation problem */
12824
12825 /* dSPACE RTICAN RX Message Block: "PosRapidUpdate_01" Id:167248129 */
12826 {
12827 UInt32 *CAN_Msg;
12828 static dsfloat time_old = 0.0;
12829
12830 /* Read status and timestamp info (previous message) */
12831 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].timestamp !=
12832 time_old) {
12833 /* ... save timestamp info for the calculation of the RX status
12834 during the consecutive sample hit*/
12835 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].
12836 timestamp;
12837
12838 /* ... set the processed flag to one */
12839 L4_MABX_B.SFunction1_o3_aw = 1.0;
12840 L4_MABX_B.SFunction1_o4_e1 = (real_T)
12841 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].timestamp;
12842 L4_MABX_B.SFunction1_o5_p = (real_T)
12843 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].deltatime;
12844 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].data;
12845
12846 /* Decode CAN message */
12847 {
12848 {
12849 rtican_Signal_t CAN_Sgn;
12850
12851 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
12852 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12853 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
12854 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
12855 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
12856 L4_MABX_B.SFunction1_o1_b5 = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12857 );
12858
12859 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
12860 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12861 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12862 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
12863 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
12864 L4_MABX_B.SFunction1_o2_bs = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12865 );
12866 }
12867 }
12868 } else {
12869 /* set RX status to 0 because no new message has arrived */
12870 L4_MABX_B.SFunction1_o3_aw = 0.0;
12871 }
12872 }
12873 }
12874
12875 /* End of Outputs for SubSystem: '<S620>/PosRapidUpdate_1' */
12876
12877 /* Switch: '<S620>/Switch' */
12878 if (L4_MABX_B.If_Then_Else.Switch) {
12879 L4_MABX_B.Latitude_ = L4_MABX_B.SFunction1_o1_ged;
12880 L4_MABX_B.Longitude_ = L4_MABX_B.SFunction1_o2_n5;
12881 } else {
12882 L4_MABX_B.Latitude_ = L4_MABX_B.SFunction1_o1_b5;
12883 L4_MABX_B.Longitude_ = L4_MABX_B.SFunction1_o2_bs;
12884 }
12885
12886 /* Outputs for Enabled SubSystem: '<S500>/CCVS1_00' incorporates:
12887 * EnablePort: '<S501>/Enable'
12888 */
12889 /* Constant: '<S424>/Constant' */
12890 if (L4_MABX_P.Constant_Value_axe) {
12891 /* S-Function (rti_commonblock): '<S501>/S-Function1' */
12892 /* This comment workarounds a code generation problem */
12893
12894 /* dSPACE RTICAN RX Message Block: "CCVS1_00" Id:218034432 */
12895 {
12896 UInt32 *CAN_Msg;
12897 static dsfloat time_old = 0.0;
12898
12899 /* Read status and timestamp info (previous message) */
12900 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].timestamp !=
12901 time_old) {
12902 /* ... save timestamp info for the calculation of the RX status
12903 during the consecutive sample hit*/
12904 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].
12905 timestamp;
12906
12907 /* ... set the processed flag to one */
12908 L4_MABX_B.SFunction1_o21_bo = 1.0;
12909 L4_MABX_B.SFunction1_o22_nv = (real_T)
12910 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].timestamp;
12911 L4_MABX_B.SFunction1_o23_d = (real_T)
12912 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].deltatime;
12913 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].data;
12914
12915 /* Decode CAN message */
12916 {
12917 {
12918 rtican_Signal_t CAN_Sgn;
12919
12920 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
12921 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12922 CAN_Sgn.UnsignedSgn &= 0x00000003;
12923 L4_MABX_B.SFunction1_o1_jau = ((real_T) CAN_Sgn.UnsignedSgn);
12924
12925 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
12926 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12927 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12928 CAN_Sgn.UnsignedSgn &= 0x00000003;
12929 L4_MABX_B.SFunction1_o2_ka = ((real_T) CAN_Sgn.UnsignedSgn);
12930
12931 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
12932 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12933 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12934 CAN_Sgn.UnsignedSgn &= 0x00000003;
12935 L4_MABX_B.SFunction1_o3_ei = ((real_T) CAN_Sgn.UnsignedSgn);
12936
12937 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
12938 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12939 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12940 CAN_Sgn.UnsignedSgn &= 0x00000003;
12941 L4_MABX_B.SFunction1_o4_it = ((real_T) CAN_Sgn.UnsignedSgn);
12942
12943 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
12944 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
12945 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
12946 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12947 WheelBasedVehicleSpeed = 0.00390625 * ( ((real_T)
12948 CAN_Sgn.UnsignedSgn) );
12949
12950 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
12951 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12952 CAN_Sgn.UnsignedSgn &= 0x00000003;
12953 L4_MABX_B.SFunction1_o6_mz = ((real_T) CAN_Sgn.UnsignedSgn);
12954
12955 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
12956 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12957 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12958 CAN_Sgn.UnsignedSgn &= 0x00000003;
12959 L4_MABX_B.SFunction1_o7_iy = ((real_T) CAN_Sgn.UnsignedSgn);
12960
12961 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
12962 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12963 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12964 CAN_Sgn.UnsignedSgn &= 0x00000003;
12965 BrakeSwitch = ((real_T) CAN_Sgn.UnsignedSgn);
12966
12967 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
12968 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12969 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12970 CAN_Sgn.UnsignedSgn &= 0x00000003;
12971 L4_MABX_B.SFunction1_o9_m = ((real_T) CAN_Sgn.UnsignedSgn);
12972
12973 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
12974 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12975 CAN_Sgn.UnsignedSgn &= 0x00000003;
12976 L4_MABX_B.SFunction1_o10_mc = ((real_T) CAN_Sgn.UnsignedSgn);
12977
12978 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
12979 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12980 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12981 CAN_Sgn.UnsignedSgn &= 0x00000003;
12982 L4_MABX_B.SFunction1_o11_e2 = ((real_T) CAN_Sgn.UnsignedSgn);
12983
12984 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
12985 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12986 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12987 CAN_Sgn.UnsignedSgn &= 0x00000003;
12988 L4_MABX_B.SFunction1_o12_l = ((real_T) CAN_Sgn.UnsignedSgn);
12989
12990 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
12991 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12992 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12993 CAN_Sgn.UnsignedSgn &= 0x00000003;
12994 L4_MABX_B.SFunction1_o13_ow = ((real_T) CAN_Sgn.UnsignedSgn);
12995
12996 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
12997 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
12998 CAN_Sgn.UnsignedSgn &= 0x000000FF;
12999 L4_MABX_B.SFunction1_o14_h = ((real_T) CAN_Sgn.UnsignedSgn);
13000
13001 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
13002 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
13003 CAN_Sgn.UnsignedSgn &= 0x0000001F;
13004 L4_MABX_B.SFunction1_o15_g = ((real_T) CAN_Sgn.UnsignedSgn);
13005
13006 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
13007 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
13008 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 5;
13009 CAN_Sgn.UnsignedSgn &= 0x00000007;
13010 L4_MABX_B.SFunction1_o16_bx = ((real_T) CAN_Sgn.UnsignedSgn);
13011
13012 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
13013 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
13014 CAN_Sgn.UnsignedSgn &= 0x00000003;
13015 L4_MABX_B.SFunction1_o17_d = ((real_T) CAN_Sgn.UnsignedSgn);
13016
13017 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
13018 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
13019 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
13020 CAN_Sgn.UnsignedSgn &= 0x00000003;
13021 L4_MABX_B.SFunction1_o18_a = ((real_T) CAN_Sgn.UnsignedSgn);
13022
13023 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
13024 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
13025 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
13026 CAN_Sgn.UnsignedSgn &= 0x00000003;
13027 L4_MABX_B.SFunction1_o19_p = ((real_T) CAN_Sgn.UnsignedSgn);
13028
13029 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
13030 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
13031 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
13032 CAN_Sgn.UnsignedSgn &= 0x00000003;
13033 L4_MABX_B.SFunction1_o20_a = ((real_T) CAN_Sgn.UnsignedSgn);
13034 }
13035 }
13036 } else {
13037 /* set RX status to 0 because no new message has arrived */
13038 L4_MABX_B.SFunction1_o21_bo = 0.0;
13039 }
13040 }
13041 }
13042
13043 /* End of Constant: '<S424>/Constant' */
13044 /* End of Outputs for SubSystem: '<S500>/CCVS1_00' */
13045
13046 /* Outputs for Enabled SubSystem: '<S504>/COGSOGRapidUpdate_00' incorporates:
13047 * EnablePort: '<S505>/Enable'
13048 */
13049 /* Constant: '<S426>/Constant' */
13050 if (L4_MABX_P.Constant_Value_hd > 0.0) {
13051 /* S-Function (rti_commonblock): '<S505>/S-Function1' */
13052 /* This comment workarounds a code generation problem */
13053
13054 /* dSPACE RTICAN RX Message Block: "COGSOGRapidUpdate_00" Id:167248384 */
13055 {
13056 UInt32 *CAN_Msg;
13057 static dsfloat time_old = 0.0;
13058
13059 /* Read status and timestamp info (previous message) */
13060 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].timestamp !=
13061 time_old) {
13062 /* ... save timestamp info for the calculation of the RX status
13063 during the consecutive sample hit*/
13064 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].
13065 timestamp;
13066
13067 /* ... set the processed flag to one */
13068 L4_MABX_B.SFunction1_o5_ns = 1.0;
13069 L4_MABX_B.SFunction1_o6_kl = (real_T)
13070 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].timestamp;
13071 L4_MABX_B.SFunction1_o7_ct = (real_T)
13072 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].deltatime;
13073 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].data;
13074
13075 /* Decode CAN message */
13076 {
13077 {
13078 rtican_Signal_t CAN_Sgn;
13079
13080 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
13081 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
13082 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13083 L4_MABX_B.SFunction1_o1_o2 = ((real_T) CAN_Sgn.UnsignedSgn);
13084
13085 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
13086 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
13087 CAN_Sgn.UnsignedSgn &= 0x00000003;
13088 L4_MABX_B.SFunction1_o2_l4 = ((real_T) CAN_Sgn.UnsignedSgn);
13089
13090 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
13091 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
13092 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
13093 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13094 L4_MABX_B.SFunction1_o3_cd = 0.0001 * ( ((real_T)
13095 CAN_Sgn.UnsignedSgn) );
13096
13097 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
13098 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
13099 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
13100 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13101 L4_MABX_B.SFunction1_o4_g4 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
13102 );
13103 }
13104 }
13105 } else {
13106 /* set RX status to 0 because no new message has arrived */
13107 L4_MABX_B.SFunction1_o5_ns = 0.0;
13108 }
13109 }
13110 }
13111
13112 /* End of Outputs for SubSystem: '<S504>/COGSOGRapidUpdate_00' */
13113
13114 /* DataTypeConversion: '<S504>/Data Type Conversion8' */
13115 L4_MABX_B.RX_status_i = (L4_MABX_B.SFunction1_o5_ns != 0.0);
13116
13117 /* Outputs for Enabled SubSystem: '<S504>/COGSOGRapidUpdate_1' incorporates:
13118 * EnablePort: '<S506>/Enable'
13119 */
13120 /* Constant: '<S426>/Constant' */
13121 if (L4_MABX_P.Constant_Value_hd > 0.0) {
13122 /* S-Function (rti_commonblock): '<S506>/S-Function1' */
13123 /* This comment workarounds a code generation problem */
13124
13125 /* dSPACE RTICAN RX Message Block: "COGSOGRapidUpdate_00" Id:167248385 */
13126 {
13127 UInt32 *CAN_Msg;
13128 static dsfloat time_old = 0.0;
13129
13130 /* Read status and timestamp info (previous message) */
13131 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].timestamp !=
13132 time_old) {
13133 /* ... save timestamp info for the calculation of the RX status
13134 during the consecutive sample hit*/
13135 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].
13136 timestamp;
13137
13138 /* ... set the processed flag to one */
13139 L4_MABX_B.SFunction1_o5_juk = 1.0;
13140 L4_MABX_B.SFunction1_o6_fvx = (real_T)
13141 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].timestamp;
13142 L4_MABX_B.SFunction1_o7_jc = (real_T)
13143 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].deltatime;
13144 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].data;
13145
13146 /* Decode CAN message */
13147 {
13148 {
13149 rtican_Signal_t CAN_Sgn;
13150
13151 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
13152 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
13153 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13154 L4_MABX_B.SFunction1_o1_j4 = ((real_T) CAN_Sgn.UnsignedSgn);
13155
13156 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
13157 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
13158 CAN_Sgn.UnsignedSgn &= 0x00000003;
13159 L4_MABX_B.SFunction1_o2_mv = ((real_T) CAN_Sgn.UnsignedSgn);
13160
13161 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
13162 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
13163 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
13164 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13165 L4_MABX_B.SFunction1_o3_cp = 0.0001 * ( ((real_T)
13166 CAN_Sgn.UnsignedSgn) );
13167
13168 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
13169 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
13170 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
13171 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13172 L4_MABX_B.SFunction1_o4_cw = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
13173 );
13174 }
13175 }
13176 } else {
13177 /* set RX status to 0 because no new message has arrived */
13178 L4_MABX_B.SFunction1_o5_juk = 0.0;
13179 }
13180 }
13181 }
13182
13183 /* End of Outputs for SubSystem: '<S504>/COGSOGRapidUpdate_1' */
13184
13185 /* Switch: '<S504>/Switch' */
13186 if (L4_MABX_B.RX_status_i) {
13187 L4_MABX_B.SID = L4_MABX_B.SFunction1_o1_o2;
13188 L4_MABX_B.COGReference = L4_MABX_B.SFunction1_o2_l4;
13189 L4_MABX_B.CourseOverGround = L4_MABX_B.SFunction1_o3_cd;
13190 L4_MABX_B.SpeedOverGround = L4_MABX_B.SFunction1_o4_g4;
13191 } else {
13192 L4_MABX_B.SID = L4_MABX_B.SFunction1_o1_j4;
13193 L4_MABX_B.COGReference = L4_MABX_B.SFunction1_o2_mv;
13194 L4_MABX_B.CourseOverGround = L4_MABX_B.SFunction1_o3_cp;
13195 L4_MABX_B.SpeedOverGround = L4_MABX_B.SFunction1_o4_cw;
13196 }
13197
13198 /* Outputs for Atomic SubSystem: '<S834>/CAN_TX_100ms' */
13199
13200 /* RateTransition: '<S871>/TmpRTBAtHiddenBuf_InsertedFor_Rolling_15_counter_at_inport_0Inport1' */
13201 if (L4_MABX_M->Timing.RateInteraction.TID0_3 == 1) {
13202 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R = AutonomousOutputEnabled;
13203
13204 /* RateTransition: '<S889>/TmpRTBAtOperatorInport1' */
13205 L4_MABX_B.TmpRTBAtOperatorInport1 = AutonomousOutputEnabled;
13206
13207 /* RateTransition: '<S892>/TmpRTBAtOperatorInport1' */
13208 L4_MABX_B.TmpRTBAtOperatorInport1_o = AutonomousOutputEnabled;
13209
13210 /* RateTransition: '<S883>/TmpRTBAtOperatorInport1' */
13211 L4_MABX_B.TmpRTBAtOperatorInport1_n = AutonomousOutputEnabled;
13212
13213 /* RateTransition: '<S884>/TmpRTBAtOperatorInport1' */
13214 L4_MABX_B.TmpRTBAtOperatorInport1_j = AutonomousOutputEnabled;
13215
13216 /* RateTransition: '<S890>/TmpRTBAtOperatorInport1' */
13217 L4_MABX_B.TmpRTBAtOperatorInport1_m = AutonomousOutputEnabled;
13218
13219 /* RateTransition: '<S891>/TmpRTBAtOperatorInport1' */
13220 L4_MABX_B.TmpRTBAtOperatorInport1_h = AutonomousOutputEnabled;
13221 L4_MABX_B.Latitude__b = L4_MABX_B.Latitude_;
13222 L4_MABX_B.Longitude__d = L4_MABX_B.Longitude_;
13223 L4_MABX_B.TwoSpeedAxleSwitch_h = L4_MABX_B.SFunction1_o1_jau;
13224 L4_MABX_B.ParkingBrakeSwitch_j = L4_MABX_B.SFunction1_o2_ka;
13225 L4_MABX_B.CruiseCtrlPauseSwitch_j = L4_MABX_B.SFunction1_o3_ei;
13226 L4_MABX_B.ParkBrakeReleaseInhibitRq_g = L4_MABX_B.SFunction1_o4_it;
13227 L4_MABX_B.WheelBasedVehicleSpeed_id = WheelBasedVehicleSpeed;
13228 L4_MABX_B.CruiseCtrlActive_l = L4_MABX_B.SFunction1_o6_mz;
13229 L4_MABX_B.CruiseCtrlEnableSwitch_er = L4_MABX_B.SFunction1_o7_iy;
13230 L4_MABX_B.BrakeSwitch_jm = BrakeSwitch;
13231 L4_MABX_B.ClutchSwitch_i = L4_MABX_B.SFunction1_o9_m;
13232 L4_MABX_B.CruiseCtrlSetSwitch_c = L4_MABX_B.SFunction1_o10_mc;
13233 L4_MABX_B.CruiseCtrlCoastSwitch_m = L4_MABX_B.SFunction1_o11_e2;
13234 L4_MABX_B.CruiseCtrlResumeSwitch_b = L4_MABX_B.SFunction1_o12_l;
13235 L4_MABX_B.CruiseCtrlAccelerateSwitch_p = L4_MABX_B.SFunction1_o13_ow;
13236 L4_MABX_B.CruiseCtrlSetSpeed_e = L4_MABX_B.SFunction1_o14_h;
13237 L4_MABX_B.PTOGovernorState_d = L4_MABX_B.SFunction1_o15_g;
13238 L4_MABX_B.CruiseCtrlStates_c = L4_MABX_B.SFunction1_o16_bx;
13239 L4_MABX_B.EngIdleIncrementSwitch_o = L4_MABX_B.SFunction1_o17_d;
13240 L4_MABX_B.EngIdleDecrementSwitch_i = L4_MABX_B.SFunction1_o18_a;
13241 L4_MABX_B.EngTestModeSwitch_m = L4_MABX_B.SFunction1_o19_p;
13242 L4_MABX_B.EngShutdownOverrideSwitch_g = L4_MABX_B.SFunction1_o20_a;
13243 L4_MABX_B.TwoSpeedAxleSwitch_hx = L4_MABX_B.SFunction1_o1_jau;
13244 L4_MABX_B.ParkingBrakeSwitch_ji = L4_MABX_B.SFunction1_o2_ka;
13245 L4_MABX_B.CruiseCtrlPauseSwitch_ji = L4_MABX_B.SFunction1_o3_ei;
13246 L4_MABX_B.ParkBrakeReleaseInhibitRq_gm = L4_MABX_B.SFunction1_o4_it;
13247 L4_MABX_B.WheelBasedVehicleSpeed_idf = WheelBasedVehicleSpeed;
13248 L4_MABX_B.CruiseCtrlActive_lv = L4_MABX_B.SFunction1_o6_mz;
13249 L4_MABX_B.CruiseCtrlEnableSwitch_ere = L4_MABX_B.SFunction1_o7_iy;
13250 L4_MABX_B.BrakeSwitch_jmh = BrakeSwitch;
13251 L4_MABX_B.ClutchSwitch_iz = L4_MABX_B.SFunction1_o9_m;
13252 L4_MABX_B.CruiseCtrlSetSwitch_c5 = L4_MABX_B.SFunction1_o10_mc;
13253 L4_MABX_B.CruiseCtrlCoastSwitch_ma = L4_MABX_B.SFunction1_o11_e2;
13254 L4_MABX_B.CruiseCtrlResumeSwitch_bk = L4_MABX_B.SFunction1_o12_l;
13255 L4_MABX_B.CruiseCtrlAccelerateSwitch_pz = L4_MABX_B.SFunction1_o13_ow;
13256 L4_MABX_B.CruiseCtrlSetSpeed_ex = L4_MABX_B.SFunction1_o14_h;
13257 L4_MABX_B.PTOGovernorState_dy = L4_MABX_B.SFunction1_o15_g;
13258 L4_MABX_B.CruiseCtrlStates_c1 = L4_MABX_B.SFunction1_o16_bx;
13259 L4_MABX_B.EngIdleIncrementSwitch_on = L4_MABX_B.SFunction1_o17_d;
13260 L4_MABX_B.EngIdleDecrementSwitch_ib = L4_MABX_B.SFunction1_o18_a;
13261 L4_MABX_B.EngTestModeSwitch_m1 = L4_MABX_B.SFunction1_o19_p;
13262 L4_MABX_B.EngShutdownOverrideSwitch_g5 = L4_MABX_B.SFunction1_o20_a;
13263 L4_MABX_B.SID_c = L4_MABX_B.SID;
13264 L4_MABX_B.COGReference_c = L4_MABX_B.COGReference;
13265 L4_MABX_B.CourseOverGround_p = L4_MABX_B.CourseOverGround;
13266 L4_MABX_B.SpeedOverGround_j = L4_MABX_B.SpeedOverGround;
13267 L4_MABX_B.ASREngCtrlActive = L4_MABX_B.SFunction1_o1_no;
13268 L4_MABX_B.ASRBrakeCtrlActive = L4_MABX_B.SFunction1_o2_gg;
13269 L4_MABX_B.AntiLockBrakingActive = L4_MABX_B.SFunction1_o3_pd;
13270 L4_MABX_B.EBSBrakeSwitch_e = L4_MABX_B.SFunction1_o4_edl;
13271 L4_MABX_B.BrakePedalPos = L4_MABX_B.SFunction1_o5_ma;
13272 L4_MABX_B.ABSOffroadSwitch = L4_MABX_B.SFunction1_o6_n;
13273 L4_MABX_B.ASROffroadSwitch = L4_MABX_B.SFunction1_o7_e3;
13274 L4_MABX_B.ASRHillHolderSwitch = L4_MABX_B.SFunction1_o8_ff;
13275 L4_MABX_B.TractionCtrlOverrideSwitch = L4_MABX_B.SFunction1_o9_cr;
13276 L4_MABX_B.AccelInterlockSwitch = L4_MABX_B.SFunction1_o10_pe;
13277 L4_MABX_B.EngDerateSwitch = L4_MABX_B.SFunction1_o11_p;
13278 L4_MABX_B.EngAuxShutdownSwitch = L4_MABX_B.SFunction1_o12_k;
13279 L4_MABX_B.RemoteAccelEnableSwitch = L4_MABX_B.SFunction1_o13_cs;
13280 L4_MABX_B.EngRetarderSelection = L4_MABX_B.SFunction1_o14_e;
13281 L4_MABX_B.ABSFullyOperational = L4_MABX_B.SFunction1_o15_o;
13282 L4_MABX_B.EBSRedWarningSignal = L4_MABX_B.SFunction1_o16_g;
13283 L4_MABX_B.ABS_EBSAmberWarningSignal = L4_MABX_B.SFunction1_o17_m;
13284 L4_MABX_B.ATC_ASRInformationSignal = L4_MABX_B.SFunction1_o18_f;
13285 L4_MABX_B.SrcAddrssOfCtrllngDvcFrBrkCntrl = L4_MABX_B.SFunction1_o19_i;
13286 L4_MABX_B.HaltBrakeSwitch = L4_MABX_B.SFunction1_o20_d;
13287 L4_MABX_B.TrailerABSStatus = L4_MABX_B.SFunction1_o21_b;
13288 L4_MABX_B.TrctrMntdTrilerABSWarningSignal = L4_MABX_B.SFunction1_o22_l;
13289 }
13290
13291 /* End of Outputs for SubSystem: '<S834>/CAN_TX_100ms' */
13292
13293 /* Outputs for Atomic SubSystem: '<S834>/CAN_TX_10ms' */
13294
13295 /* DataTypeConversion: '<S936>/Data Type Conversion4' */
13296 L4_MABX_B.DataTypeConversion4_i = L4_MABX_B.Diff;
13297
13298 /* DataTypeConversion: '<S925>/Data Type Conversion' incorporates:
13299 * Constant: '<S839>/CANT_ACCS_E4_CHANNEL_APV'
13300 */
13301 L4_MABX_B.DataTypeConversion_mo = (uint8_T)
13302 L4_MABX_P.CANT_ACCS_E4_CHANNEL_APV_Value;
13303
13304 /* S-Function (sfix_bitop): '<S933>/Operator' */
13305 L4_MABX_B.Operator_me = (uint8_T)(L4_MABX_B.DataTypeConversion_mo &
13306 L4_MABX_P.Operator_BitMask_a);
13307
13308 /* DataTypeConversion: '<S933>/DataType' */
13309 L4_MABX_B.DataType_k = L4_MABX_B.Operator_me;
13310
13311 /* ArithShift: '<S925>/Shift_Arithmetic 2' */
13312 L4_MABX_B.Shift_Arithmetic2_f = ldexp(L4_MABX_B.DataType_k, (-3));
13313
13314 /* DataTypeConversion: '<S925>/Data Type Conversion5' */
13315 L4_MABX_B.DataTypeConversion5_i1 = (L4_MABX_B.Shift_Arithmetic2_f != 0.0);
13316
13317 /* Outputs for Enabled SubSystem: '<S936>/ACCS' incorporates:
13318 * EnablePort: '<S937>/Enable'
13319 */
13320 if (L4_MABX_B.DataTypeConversion5_i1) {
13321 /* S-Function (rti_commonblock): '<S937>/S-Function1' */
13322 /* This comment workarounds a code generation problem */
13323
13324 /* dSPACE RTICAN TX Message Block: "ACCS" Id:418393572 */
13325 {
13326 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13327
13328 Float32 delayTime = 0.0;
13329
13330 /* ... Read status and timestamp info (previous message) */
13331 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]);
13332
13333 /* Convert timestamp */
13334 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->processed) {
13335 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp =
13336 rtk_dsts_time_to_simtime_convert
13337 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp);
13338 }
13339
13340 /* Messages with timestamp zero have been received in pause/stop state
13341 and must not be handled.
13342 */
13343 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp > 0.0) {
13344 L4_MABX_B.SFunction1_o1_hi = (real_T)
13345 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->processed;
13346 L4_MABX_B.SFunction1_o2_p = (real_T)
13347 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp;
13348 L4_MABX_B.SFunction1_o3_js = (real_T)
13349 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->deltatime;
13350 L4_MABX_B.SFunction1_o4_h = (real_T)
13351 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->delaytime;
13352 }
13353
13354 /* ... Encode Simulink signals of TX and RM blocks*/
13355 {
13356 rtican_Signal_t CAN_Sgn;
13357
13358 /* ...... "LongitudinalAccelerationExRange" (16|16, standard signal, unsigned int, little endian) */
13359 /* Add or substract 0.5 in order to round to nearest integer */
13360 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_i -
13361 ( -320 ) ) / 0.01 + 0.5);
13362 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13363 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13364 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
13365 }
13366
13367 /* mask unused bits with '1' */
13368 CAN_Msg[0] |= 0xFF;
13369 CAN_Msg[1] |= 0xFF;
13370 CAN_Msg[4] |= 0xFF;
13371 CAN_Msg[5] |= 0xFF;
13372 CAN_Msg[6] |= 0xFF;
13373 CAN_Msg[7] |= 0xFF;
13374
13375 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13376 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4], 8,
13377 &(CAN_Msg[0]), delayTime);
13378 }
13379 }
13380
13381 /* End of Outputs for SubSystem: '<S936>/ACCS' */
13382
13383 /* S-Function (sfix_bitop): '<S930>/Operator' */
13384 L4_MABX_B.Operator_my = (uint8_T)(L4_MABX_B.DataTypeConversion_mo &
13385 L4_MABX_P.Operator_BitMask_j4);
13386
13387 /* DataTypeConversion: '<S930>/DataType' */
13388 L4_MABX_B.DataType_lo1 = L4_MABX_B.Operator_my;
13389
13390 /* S-Function (sfix_bitop): '<S931>/Operator' */
13391 L4_MABX_B.Operator_cq = (uint8_T)(L4_MABX_B.DataTypeConversion_mo &
13392 L4_MABX_P.Operator_BitMask_cr);
13393
13394 /* DataTypeConversion: '<S931>/DataType' */
13395 L4_MABX_B.DataType_d = L4_MABX_B.Operator_cq;
13396
13397 /* S-Function (sfix_bitop): '<S932>/Operator' */
13398 L4_MABX_B.Operator_la = (uint8_T)(L4_MABX_B.DataTypeConversion_mo &
13399 L4_MABX_P.Operator_BitMask_ip);
13400
13401 /* DataTypeConversion: '<S932>/DataType' */
13402 L4_MABX_B.DataType_p = L4_MABX_B.Operator_la;
13403
13404 /* S-Function (sfix_bitop): '<S934>/Operator' */
13405 L4_MABX_B.Operator_i5 = (uint8_T)(L4_MABX_B.DataTypeConversion_mo &
13406 L4_MABX_P.Operator_BitMask_fm);
13407
13408 /* DataTypeConversion: '<S934>/DataType' */
13409 L4_MABX_B.DataType_hl = L4_MABX_B.Operator_i5;
13410
13411 /* S-Function (sfix_bitop): '<S935>/Operator' */
13412 L4_MABX_B.Operator_mt = (uint8_T)(L4_MABX_B.DataTypeConversion_mo &
13413 L4_MABX_P.Operator_BitMask_pw);
13414
13415 /* DataTypeConversion: '<S935>/DataType' */
13416 L4_MABX_B.DataType_ab = L4_MABX_B.Operator_mt;
13417
13418 /* DataTypeConversion: '<S925>/Data Type Conversion2' */
13419 L4_MABX_B.DataTypeConversion2_ll = (L4_MABX_B.DataType_lo1 != 0);
13420
13421 /* ArithShift: '<S925>/Shift_Arithmetic ' */
13422 L4_MABX_B.Shift_Arithmetic_g = ldexp(L4_MABX_B.DataType_d, (-1));
13423
13424 /* DataTypeConversion: '<S925>/Data Type Conversion3' */
13425 L4_MABX_B.DataTypeConversion3_dh = (L4_MABX_B.Shift_Arithmetic_g != 0.0);
13426
13427 /* ArithShift: '<S925>/Shift_Arithmetic 1' */
13428 L4_MABX_B.Shift_Arithmetic1_d = ldexp(L4_MABX_B.DataType_p, (-2));
13429
13430 /* DataTypeConversion: '<S925>/Data Type Conversion4' */
13431 L4_MABX_B.DataTypeConversion4_il = (L4_MABX_B.Shift_Arithmetic1_d != 0.0);
13432
13433 /* ArithShift: '<S925>/Shift_Arithmetic 3' */
13434 L4_MABX_B.Shift_Arithmetic3_p = ldexp(L4_MABX_B.DataType_hl, (-4));
13435
13436 /* DataTypeConversion: '<S925>/Data Type Conversion6' */
13437 L4_MABX_B.DataTypeConversion6_fw = (L4_MABX_B.Shift_Arithmetic3_p != 0.0);
13438
13439 /* ArithShift: '<S925>/Shift_Arithmetic 4' */
13440 L4_MABX_B.Shift_Arithmetic4_n = ldexp(L4_MABX_B.DataType_ab, (-5));
13441
13442 /* DataTypeConversion: '<S925>/Data Type Conversion7' */
13443 L4_MABX_B.DataTypeConversion7_e5 = (L4_MABX_B.Shift_Arithmetic4_n != 0.0);
13444
13445 /* DataTypeConversion: '<S944>/Data Type Conversion1' */
13446 L4_MABX_B.DataTypeConversion1_nt = L4_MABX_B.SFunction1_o2_mk;
13447
13448 /* DataTypeConversion: '<S944>/Data Type Conversion2' */
13449 L4_MABX_B.DataTypeConversion2_h = L4_MABX_B.SFunction1_o3_gns;
13450
13451 /* DataTypeConversion: '<S944>/Data Type Conversion3' */
13452 L4_MABX_B.DataTypeConversion3_h = L4_MABX_B.SFunction1_o4_kr;
13453
13454 /* DataTypeConversion: '<S944>/Data Type Conversion4' */
13455 L4_MABX_B.DataTypeConversion4_g = L4_MABX_B.SFunction1_o1_k4;
13456
13457 /* DataTypeConversion: '<S944>/Data Type Conversion5' */
13458 L4_MABX_B.DataTypeConversion5_m = L4_MABX_B.SFunction1_o5_j3;
13459
13460 /* DataTypeConversion: '<S944>/Data Type Conversion6' */
13461 L4_MABX_B.DataTypeConversion6_o = L4_MABX_B.SFunction1_o6_gn;
13462
13463 /* DataTypeConversion: '<S944>/Data Type Conversion7' */
13464 L4_MABX_B.DataTypeConversion7_i = L4_MABX_B.SFunction1_o7_cb;
13465
13466 /* DataTypeConversion: '<S944>/Data Type Conversion8' */
13467 L4_MABX_B.DataTypeConversion8_a = L4_MABX_B.SFunction1_o8_a;
13468
13469 /* DataTypeConversion: '<S926>/Data Type Conversion' incorporates:
13470 * Constant: '<S839>/CANT_EEC1_00_CHANNEL_APV'
13471 */
13472 L4_MABX_B.DataTypeConversion_gn = (uint8_T)
13473 L4_MABX_P.CANT_EEC1_00_CHANNEL_APV_Value;
13474
13475 /* S-Function (sfix_bitop): '<S941>/Operator' */
13476 L4_MABX_B.Operator_dd = (uint8_T)(L4_MABX_B.DataTypeConversion_gn &
13477 L4_MABX_P.Operator_BitMask_l);
13478
13479 /* DataTypeConversion: '<S941>/DataType' */
13480 L4_MABX_B.DataType_de = L4_MABX_B.Operator_dd;
13481
13482 /* ArithShift: '<S926>/Shift_Arithmetic 2' */
13483 L4_MABX_B.Shift_Arithmetic2_g = ldexp(L4_MABX_B.DataType_de, (-3));
13484
13485 /* DataTypeConversion: '<S926>/Data Type Conversion5' */
13486 L4_MABX_B.DataTypeConversion5_o2 = (L4_MABX_B.Shift_Arithmetic2_g != 0.0);
13487
13488 /* Outputs for Enabled SubSystem: '<S944>/EEC1_00' incorporates:
13489 * EnablePort: '<S946>/Enable'
13490 */
13491 if (L4_MABX_B.DataTypeConversion5_o2) {
13492 /* S-Function (rti_commonblock): '<S946>/S-Function1' */
13493 /* This comment workarounds a code generation problem */
13494
13495 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
13496 {
13497 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13498
13499 Float32 delayTime = 0.0;
13500
13501 /* ... Read status and timestamp info (previous message) */
13502 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]);
13503
13504 /* Convert timestamp */
13505 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->processed) {
13506 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp =
13507 rtk_dsts_time_to_simtime_convert
13508 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp);
13509 }
13510
13511 /* Messages with timestamp zero have been received in pause/stop state
13512 and must not be handled.
13513 */
13514 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp > 0.0) {
13515 L4_MABX_B.SFunction1_o1_fn = (real_T)
13516 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->processed;
13517 L4_MABX_B.SFunction1_o2_f5 = (real_T)
13518 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp;
13519 L4_MABX_B.SFunction1_o3_l = (real_T)
13520 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->deltatime;
13521 L4_MABX_B.SFunction1_o4_m = (real_T)
13522 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->delaytime;
13523 }
13524
13525 /* ... Encode Simulink signals of TX and RM blocks*/
13526 {
13527 rtican_Signal_t CAN_Sgn;
13528
13529 /* ...... "SPN899_EngineTorqueMode" (0|4, standard signal, unsigned int, little endian) */
13530 /* Add or substract 0.5 in order to round to nearest integer */
13531 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_g ) +
13532 0.5);
13533 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13534 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13535
13536 /* ...... "SPN4154_ActEngPercTorqueFrac" (4|4, standard signal, unsigned int, little endian) */
13537 /* Add or substract 0.5 in order to round to nearest integer */
13538 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nt - ( 0
13539 ) ) / 0.125 + 0.5);
13540 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13541 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
13542 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13543
13544 /* ...... "SPN512_DrvrDemEngPercTrq" (8|8, standard signal, unsigned int, little endian) */
13545 /* Add or substract 0.5 in order to round to nearest integer */
13546 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion2_h - ( -125
13547 ) + 0.5);
13548 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13549 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
13550
13551 /* ...... "SPN513_ActEngPercTorque" (16|8, standard signal, unsigned int, little endian) */
13552 /* Add or substract 0.5 in order to round to nearest integer */
13553 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion3_h - ( -125
13554 ) + 0.5);
13555 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13556 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13557
13558 /* ...... "SPN190_EngineSpeed" (24|16, standard signal, unsigned int, little endian) */
13559 /* Add or substract 0.5 in order to round to nearest integer */
13560 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_m - ( 0 )
13561 ) / 0.125 + 0.5);
13562 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13563 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
13564 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
13565
13566 /* ...... "SPN1483_SAOfCtrlDevForEngineCtrl" (40|8, standard signal, unsigned int, little endian) */
13567 /* Add or substract 0.5 in order to round to nearest integer */
13568 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_o ) +
13569 0.5);
13570 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13571 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
13572
13573 /* ...... "SPN1675_EngineStarterMode" (48|4, standard signal, unsigned int, little endian) */
13574 /* Add or substract 0.5 in order to round to nearest integer */
13575 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_i ) +
13576 0.5);
13577 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13578 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
13579
13580 /* ...... "SPN2432_EngDemPercTrq" (56|8, standard signal, unsigned int, little endian) */
13581 /* Add or substract 0.5 in order to round to nearest integer */
13582 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion8_a - ( -125
13583 ) + 0.5);
13584 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13585 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
13586 }
13587
13588 /* mask unused bits with '1' */
13589 CAN_Msg[6] |= 0xF0;
13590
13591 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13592 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400], 8,
13593 &(CAN_Msg[0]), delayTime);
13594 }
13595 }
13596
13597 /* End of Outputs for SubSystem: '<S944>/EEC1_00' */
13598
13599 /* DataTypeConversion: '<S945>/Data Type Conversion1' */
13600 L4_MABX_B.DataTypeConversion1_f = L4_MABX_B.SFunction1_o2_mk;
13601
13602 /* DataTypeConversion: '<S945>/Data Type Conversion2' */
13603 L4_MABX_B.DataTypeConversion2_a = L4_MABX_B.SFunction1_o3_gns;
13604
13605 /* DataTypeConversion: '<S945>/Data Type Conversion3' */
13606 L4_MABX_B.DataTypeConversion3_i = L4_MABX_B.SFunction1_o4_kr;
13607
13608 /* DataTypeConversion: '<S945>/Data Type Conversion4' */
13609 L4_MABX_B.DataTypeConversion4_n = L4_MABX_B.SFunction1_o1_k4;
13610
13611 /* DataTypeConversion: '<S945>/Data Type Conversion5' */
13612 L4_MABX_B.DataTypeConversion5_j = L4_MABX_B.SFunction1_o5_j3;
13613
13614 /* DataTypeConversion: '<S945>/Data Type Conversion6' */
13615 L4_MABX_B.DataTypeConversion6_as = L4_MABX_B.SFunction1_o6_gn;
13616
13617 /* DataTypeConversion: '<S945>/Data Type Conversion7' */
13618 L4_MABX_B.DataTypeConversion7_g = L4_MABX_B.SFunction1_o7_cb;
13619
13620 /* DataTypeConversion: '<S945>/Data Type Conversion8' */
13621 L4_MABX_B.DataTypeConversion8_h = L4_MABX_B.SFunction1_o8_a;
13622
13623 /* S-Function (sfix_bitop): '<S942>/Operator' */
13624 L4_MABX_B.Operator_pr = (uint8_T)(L4_MABX_B.DataTypeConversion_gn &
13625 L4_MABX_P.Operator_BitMask_h);
13626
13627 /* DataTypeConversion: '<S942>/DataType' */
13628 L4_MABX_B.DataType_p1 = L4_MABX_B.Operator_pr;
13629
13630 /* ArithShift: '<S926>/Shift_Arithmetic 3' */
13631 L4_MABX_B.Shift_Arithmetic3_i = ldexp(L4_MABX_B.DataType_p1, (-4));
13632
13633 /* DataTypeConversion: '<S926>/Data Type Conversion6' */
13634 L4_MABX_B.DataTypeConversion6_nb = (L4_MABX_B.Shift_Arithmetic3_i != 0.0);
13635
13636 /* Outputs for Enabled SubSystem: '<S945>/EEC1_00' incorporates:
13637 * EnablePort: '<S947>/Enable'
13638 */
13639 if (L4_MABX_B.DataTypeConversion6_nb) {
13640 /* S-Function (rti_commonblock): '<S947>/S-Function1' */
13641 /* This comment workarounds a code generation problem */
13642
13643 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
13644 {
13645 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13646
13647 Float32 delayTime = 0.0;
13648
13649 /* ... Read status and timestamp info (previous message) */
13650 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]);
13651
13652 /* Convert timestamp */
13653 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->processed) {
13654 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp =
13655 rtk_dsts_time_to_simtime_convert
13656 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp);
13657 }
13658
13659 /* Messages with timestamp zero have been received in pause/stop state
13660 and must not be handled.
13661 */
13662 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp > 0.0) {
13663 L4_MABX_B.SFunction1_o1_c = (real_T)
13664 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->processed;
13665 L4_MABX_B.SFunction1_o2_nx = (real_T)
13666 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp;
13667 L4_MABX_B.SFunction1_o3_iv = (real_T)
13668 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->deltatime;
13669 L4_MABX_B.SFunction1_o4_p3 = (real_T)
13670 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->delaytime;
13671 }
13672
13673 /* ... Encode Simulink signals of TX and RM blocks*/
13674 {
13675 rtican_Signal_t CAN_Sgn;
13676
13677 /* ...... "SPN899_EngineTorqueMode" (0|4, standard signal, unsigned int, little endian) */
13678 /* Add or substract 0.5 in order to round to nearest integer */
13679 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_n ) +
13680 0.5);
13681 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13682 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13683
13684 /* ...... "SPN4154_ActEngPercTorqueFrac" (4|4, standard signal, unsigned int, little endian) */
13685 /* Add or substract 0.5 in order to round to nearest integer */
13686 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_f - ( 0 )
13687 ) / 0.125 + 0.5);
13688 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13689 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
13690 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13691
13692 /* ...... "SPN512_DrvrDemEngPercTrq" (8|8, standard signal, unsigned int, little endian) */
13693 /* Add or substract 0.5 in order to round to nearest integer */
13694 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion2_a - ( -125
13695 ) + 0.5);
13696 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13697 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
13698
13699 /* ...... "SPN513_ActEngPercTorque" (16|8, standard signal, unsigned int, little endian) */
13700 /* Add or substract 0.5 in order to round to nearest integer */
13701 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion3_i - ( -125
13702 ) + 0.5);
13703 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13704 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13705
13706 /* ...... "SPN190_EngineSpeed" (24|16, standard signal, unsigned int, little endian) */
13707 /* Add or substract 0.5 in order to round to nearest integer */
13708 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_j - ( 0 )
13709 ) / 0.125 + 0.5);
13710 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13711 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
13712 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
13713
13714 /* ...... "SPN1483_SAOfCtrlDevForEngineCtrl" (40|8, standard signal, unsigned int, little endian) */
13715 /* Add or substract 0.5 in order to round to nearest integer */
13716 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_as ) +
13717 0.5);
13718 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13719 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
13720
13721 /* ...... "SPN1675_EngineStarterMode" (48|4, standard signal, unsigned int, little endian) */
13722 /* Add or substract 0.5 in order to round to nearest integer */
13723 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_g ) +
13724 0.5);
13725 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13726 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
13727
13728 /* ...... "SPN2432_EngDemPercTrq" (56|8, standard signal, unsigned int, little endian) */
13729 /* Add or substract 0.5 in order to round to nearest integer */
13730 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion8_h - ( -125
13731 ) + 0.5);
13732 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13733 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
13734 }
13735
13736 /* mask unused bits with '1' */
13737 CAN_Msg[6] |= 0xF0;
13738
13739 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13740 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400], 8,
13741 &(CAN_Msg[0]), delayTime);
13742 }
13743 }
13744
13745 /* End of Outputs for SubSystem: '<S945>/EEC1_00' */
13746
13747 /* S-Function (sfix_bitop): '<S938>/Operator' */
13748 L4_MABX_B.Operator_ao = (uint8_T)(L4_MABX_B.DataTypeConversion_gn &
13749 L4_MABX_P.Operator_BitMask_cm);
13750
13751 /* DataTypeConversion: '<S938>/DataType' */
13752 L4_MABX_B.DataType_o0 = L4_MABX_B.Operator_ao;
13753
13754 /* S-Function (sfix_bitop): '<S939>/Operator' */
13755 L4_MABX_B.Operator_pz3 = (uint8_T)(L4_MABX_B.DataTypeConversion_gn &
13756 L4_MABX_P.Operator_BitMask_ec);
13757
13758 /* DataTypeConversion: '<S939>/DataType' */
13759 L4_MABX_B.DataType_kc = L4_MABX_B.Operator_pz3;
13760
13761 /* S-Function (sfix_bitop): '<S940>/Operator' */
13762 L4_MABX_B.Operator_gv = (uint8_T)(L4_MABX_B.DataTypeConversion_gn &
13763 L4_MABX_P.Operator_BitMask_az);
13764
13765 /* DataTypeConversion: '<S940>/DataType' */
13766 L4_MABX_B.DataType_g = L4_MABX_B.Operator_gv;
13767
13768 /* S-Function (sfix_bitop): '<S943>/Operator' */
13769 L4_MABX_B.Operator_jf = (uint8_T)(L4_MABX_B.DataTypeConversion_gn &
13770 L4_MABX_P.Operator_BitMask_g);
13771
13772 /* DataTypeConversion: '<S943>/DataType' */
13773 L4_MABX_B.DataType_gs = L4_MABX_B.Operator_jf;
13774
13775 /* DataTypeConversion: '<S926>/Data Type Conversion2' */
13776 L4_MABX_B.DataTypeConversion2_go = (L4_MABX_B.DataType_o0 != 0);
13777
13778 /* ArithShift: '<S926>/Shift_Arithmetic ' */
13779 L4_MABX_B.Shift_Arithmetic_k = ldexp(L4_MABX_B.DataType_kc, (-1));
13780
13781 /* DataTypeConversion: '<S926>/Data Type Conversion3' */
13782 L4_MABX_B.DataTypeConversion3_it = (L4_MABX_B.Shift_Arithmetic_k != 0.0);
13783
13784 /* ArithShift: '<S926>/Shift_Arithmetic 1' */
13785 L4_MABX_B.Shift_Arithmetic1_i = ldexp(L4_MABX_B.DataType_g, (-2));
13786
13787 /* DataTypeConversion: '<S926>/Data Type Conversion4' */
13788 L4_MABX_B.DataTypeConversion4_ok = (L4_MABX_B.Shift_Arithmetic1_i != 0.0);
13789
13790 /* ArithShift: '<S926>/Shift_Arithmetic 4' */
13791 L4_MABX_B.Shift_Arithmetic4_p = ldexp(L4_MABX_B.DataType_gs, (-5));
13792
13793 /* DataTypeConversion: '<S926>/Data Type Conversion7' */
13794 L4_MABX_B.DataTypeConversion7_fe = (L4_MABX_B.Shift_Arithmetic4_p != 0.0);
13795
13796 /* DataTypeConversion: '<S929>/Data Type Conversion' */
13797 L4_MABX_B.DataTypeConversion_au = AutonomousOutputEnabled;
13798
13799 /* Switch: '<S963>/Switch' incorporates:
13800 * Constant: '<S963>/Constant'
13801 * Constant: '<S963>/Constant1'
13802 */
13803 if (L4_MABX_B.DataTypeConversion_au != 0) {
13804 L4_MABX_B.Switch_fz = L4_MABX_P.Constant_Value_fie;
13805 } else {
13806 L4_MABX_B.Switch_fz = L4_MABX_P.Constant1_Value_na;
13807 }
13808
13809 /* End of Switch: '<S963>/Switch' */
13810
13811 /* DataTypeConversion: '<S961>/Data Type Conversion' */
13812 L4_MABX_B.DataTypeConversion_f2 = L4_MABX_B.Switch_fz;
13813
13814 /* RelationalOperator: '<S980>/Operator' incorporates:
13815 * Constant: '<S962>/Constant'
13816 * Constant: '<S962>/Constant6'
13817 */
13818 L4_MABX_B.Operator_k4 = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13819 L4_MABX_P.Constant_Value_ax);
13820
13821 /* Outputs for Enabled SubSystem: '<S962>/DEFAULT_TRQ_CTRL_MODE' */
13822 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_k4, &L4_MABX_B.Merge,
13823 &L4_MABX_P.DEFAULT_TRQ_CTRL_MODE);
13824
13825 /* End of Outputs for SubSystem: '<S962>/DEFAULT_TRQ_CTRL_MODE' */
13826
13827 /* Switch: '<S979>/Switch' incorporates:
13828 * Constant: '<S979>/zero'
13829 */
13830 if (L4_MABX_B.DataTypeConversion_au != 0) {
13831 /* MultiPortSwitch: '<S979>/Multiport_Switch' incorporates:
13832 * Constant: '<S979>/Constant1'
13833 * Constant: '<S979>/Constant7'
13834 */
13835 switch (PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV) {
13836 case ENUM_STEERING_POS_SIGNAL_SOURCE_T_SW_EMULATION:
13837 L4_MABX_B.Multiport_Switch = PROPB_REAX_1_E4_DESIRED_POSITION_APV;
13838 break;
13839
13840 case ENUM_STEERING_POS_SIGNAL_SOURCE_T_ESTIMATION:
13841 L4_MABX_B.Multiport_Switch = L4_MABX_B.Subtract_c1;
13842 break;
13843
13844 default:
13845 L4_MABX_B.Multiport_Switch = PROPB_REAX_1_E4_DESIRED_POSITION_APV;
13846 break;
13847 }
13848
13849 /* End of MultiPortSwitch: '<S979>/Multiport_Switch' */
13850 L4_MABX_B.Switch_i = L4_MABX_B.Multiport_Switch;
13851 } else {
13852 L4_MABX_B.Switch_i = L4_MABX_P.zero_Value_k;
13853 }
13854
13855 /* End of Switch: '<S979>/Switch' */
13856
13857 /* RelationalOperator: '<S989>/Operator_MX' incorporates:
13858 * Constant: '<S989>/MX'
13859 */
13860 L4_MABX_B.Operator_MX = (L4_MABX_B.Switch_i > L4_MABX_P.MX_Value);
13861
13862 /* RelationalOperator: '<S989>/Operator_MN' incorporates:
13863 * Constant: '<S989>/MN'
13864 */
13865 L4_MABX_B.Operator_MN = (L4_MABX_B.Switch_i < L4_MABX_P.MN_Value);
13866
13867 /* Switch: '<S989>/Switch2' incorporates:
13868 * Constant: '<S989>/MX'
13869 * Switch: '<S989>/Switch1'
13870 */
13871 if (L4_MABX_B.Operator_MX) {
13872 L4_MABX_B.Switch2 = L4_MABX_P.MX_Value;
13873 } else {
13874 if (L4_MABX_B.Operator_MN) {
13875 /* Switch: '<S989>/Switch1' incorporates:
13876 * Constant: '<S989>/MN'
13877 */
13878 L4_MABX_B.Switch1 = L4_MABX_P.MN_Value;
13879 } else {
13880 /* Switch: '<S989>/Switch1' */
13881 L4_MABX_B.Switch1 = L4_MABX_B.Switch_i;
13882 }
13883
13884 L4_MABX_B.Switch2 = L4_MABX_B.Switch1;
13885 }
13886
13887 /* End of Switch: '<S989>/Switch2' */
13888
13889 /* DataTypeConversion: '<S989>/DataType' */
13890 L4_MABX_B.DataType_e = L4_MABX_B.Switch2;
13891
13892 /* RelationalOperator: '<S981>/Operator' incorporates:
13893 * Constant: '<S962>/Constant1'
13894 * Constant: '<S962>/Constant6'
13895 */
13896 L4_MABX_B.Operator_cl = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13897 L4_MABX_P.Constant1_Value_gk);
13898
13899 /* Outputs for Enabled SubSystem: '<S962>/POSITION_CONTROL_MODE' incorporates:
13900 * EnablePort: '<S990>/Enable'
13901 */
13902 if (L4_MABX_B.Operator_cl) {
13903 /* Product: '<S990>/Product' incorporates:
13904 * Constant: '<S990>/Constant'
13905 */
13906 L4_MABX_B.Product = L4_MABX_B.DataType_e * L4_MABX_P.Constant_Value_fx;
13907
13908 /* DataTypeConversion: '<S990>/Data Type Conversion' */
13909 PositionFinalLimited = floor(L4_MABX_B.Product);
13910 if (PositionFinalLimited < 2.147483648E+9) {
13911 if (PositionFinalLimited >= -2.147483648E+9) {
13912 i = (int32_T)PositionFinalLimited;
13913 } else {
13914 i = MIN_int32_T;
13915 }
13916 } else {
13917 i = MAX_int32_T;
13918 }
13919
13920 L4_MABX_B.Merge = i;
13921
13922 /* End of DataTypeConversion: '<S990>/Data Type Conversion' */
13923 }
13924
13925 /* End of Outputs for SubSystem: '<S962>/POSITION_CONTROL_MODE' */
13926
13927 /* RelationalOperator: '<S982>/Operator' incorporates:
13928 * Constant: '<S962>/Constant2'
13929 * Constant: '<S962>/Constant6'
13930 */
13931 L4_MABX_B.Operator_kri = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13932 L4_MABX_P.Constant2_Value_ha);
13933
13934 /* Outputs for Enabled SubSystem: '<S962>/EXT_TRQ_CTRL_MODE_A' */
13935 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_kri, &L4_MABX_B.Merge,
13936 &L4_MABX_P.EXT_TRQ_CTRL_MODE_A);
13937
13938 /* End of Outputs for SubSystem: '<S962>/EXT_TRQ_CTRL_MODE_A' */
13939
13940 /* RelationalOperator: '<S983>/Operator' incorporates:
13941 * Constant: '<S962>/Constant3'
13942 * Constant: '<S962>/Constant6'
13943 */
13944 L4_MABX_B.Operator_ke = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13945 L4_MABX_P.Constant3_Value_dj);
13946
13947 /* Outputs for Enabled SubSystem: '<S962>/ALL_CTRL_DISABLED' */
13948 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_ke, &L4_MABX_B.Merge,
13949 &L4_MABX_P.ALL_CTRL_DISABLED);
13950
13951 /* End of Outputs for SubSystem: '<S962>/ALL_CTRL_DISABLED' */
13952
13953 /* RelationalOperator: '<S984>/Operator' incorporates:
13954 * Constant: '<S962>/Constant4'
13955 * Constant: '<S962>/Constant6'
13956 */
13957 L4_MABX_B.Operator_fr = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13958 L4_MABX_P.Constant4_Value_jk);
13959
13960 /* Outputs for Enabled SubSystem: '<S962>/EXT_TRQ_CTRL_MODE_B' */
13961 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_fr, &L4_MABX_B.Merge,
13962 &L4_MABX_P.EXT_TRQ_CTRL_MODE_B);
13963
13964 /* End of Outputs for SubSystem: '<S962>/EXT_TRQ_CTRL_MODE_B' */
13965
13966 /* RelationalOperator: '<S985>/Operator' incorporates:
13967 * Constant: '<S962>/Constant5'
13968 * Constant: '<S962>/Constant6'
13969 */
13970 L4_MABX_B.Operator_bqy = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13971 L4_MABX_P.Constant5_Value_m2);
13972
13973 /* Outputs for Enabled SubSystem: '<S962>/EXT_TRQ_CTRL_MODE_C' */
13974 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_bqy, &L4_MABX_B.Merge,
13975 &L4_MABX_P.EXT_TRQ_CTRL_MODE_C);
13976
13977 /* End of Outputs for SubSystem: '<S962>/EXT_TRQ_CTRL_MODE_C' */
13978
13979 /* DataTypeConversion: '<S961>/Data Type Conversion2' */
13980 L4_MABX_B.DataTypeConversion2_hl = (uint32_T)L4_MABX_B.Merge;
13981
13982 /* S-Function (sfix_bitop): '<S966>/Operator' */
13983 L4_MABX_B.Operator_b = L4_MABX_B.DataTypeConversion2_hl &
13984 L4_MABX_P.Operator_BitMask_am;
13985
13986 /* DataTypeConversion: '<S966>/DataType' */
13987 tmp = L4_MABX_B.Operator_b;
13988 if (tmp > 255U) {
13989 tmp = 255U;
13990 }
13991
13992 L4_MABX_B.DataType_ju = (uint8_T)tmp;
13993
13994 /* End of DataTypeConversion: '<S966>/DataType' */
13995
13996 /* S-Function (sfix_bitop): '<S967>/Operator' */
13997 L4_MABX_B.Operator_bf = L4_MABX_B.DataTypeConversion2_hl &
13998 L4_MABX_P.Operator_BitMask_hq;
13999
14000 /* DataTypeConversion: '<S967>/DataType' */
14001 tmp = L4_MABX_B.Operator_bf;
14002 if (tmp > 65535U) {
14003 tmp = 65535U;
14004 }
14005
14006 L4_MABX_B.DataType_lf = (uint16_T)tmp;
14007
14008 /* End of DataTypeConversion: '<S967>/DataType' */
14009
14010 /* ArithShift: '<S961>/Shift_Arithmetic ' */
14011 L4_MABX_B.Shift_Arithmetic_b = (uint16_T)((uint32_T)L4_MABX_B.DataType_lf >> 8);
14012
14013 /* DataTypeConversion: '<S961>/Data Type Conversion4' */
14014 tmp_0 = L4_MABX_B.Shift_Arithmetic_b;
14015 if (tmp_0 > 255) {
14016 tmp_0 = 255U;
14017 }
14018
14019 L4_MABX_B.DataTypeConversion4_e4 = (uint8_T)tmp_0;
14020
14021 /* End of DataTypeConversion: '<S961>/Data Type Conversion4' */
14022
14023 /* S-Function (sfix_bitop): '<S968>/Operator' */
14024 L4_MABX_B.Operator_dc = L4_MABX_B.DataTypeConversion2_hl &
14025 L4_MABX_P.Operator_BitMask_bc;
14026
14027 /* DataTypeConversion: '<S968>/DataType' */
14028 L4_MABX_B.DataType_i = L4_MABX_B.Operator_dc;
14029
14030 /* ArithShift: '<S961>/Shift_Arithmetic 1' */
14031 L4_MABX_B.Shift_Arithmetic1_it = L4_MABX_B.DataType_i >> 16;
14032
14033 /* DataTypeConversion: '<S961>/Data Type Conversion5' */
14034 tmp = L4_MABX_B.Shift_Arithmetic1_it;
14035 if (tmp > 255U) {
14036 tmp = 255U;
14037 }
14038
14039 L4_MABX_B.DataTypeConversion5_f = (uint8_T)tmp;
14040
14041 /* End of DataTypeConversion: '<S961>/Data Type Conversion5' */
14042
14043 /* S-Function (sfix_bitop): '<S969>/Operator' */
14044 L4_MABX_B.Operator_pz = L4_MABX_B.DataTypeConversion2_hl &
14045 L4_MABX_P.Operator_BitMask_bf;
14046
14047 /* DataTypeConversion: '<S969>/DataType' */
14048 L4_MABX_B.DataType_bg = L4_MABX_B.Operator_pz;
14049
14050 /* ArithShift: '<S961>/Shift_Arithmetic 2' */
14051 L4_MABX_B.Shift_Arithmetic2_o = L4_MABX_B.DataType_bg >> 24;
14052
14053 /* DataTypeConversion: '<S961>/Data Type Conversion6' */
14054 tmp = L4_MABX_B.Shift_Arithmetic2_o;
14055 if (tmp > 255U) {
14056 tmp = 255U;
14057 }
14058
14059 L4_MABX_B.DataTypeConversion6_iz = (uint8_T)tmp;
14060
14061 /* End of DataTypeConversion: '<S961>/Data Type Conversion6' */
14062
14063 /* Reshape: '<S991>/Reshape' incorporates:
14064 * Constant: '<S991>/Constant'
14065 */
14066 for (i = 0; i < 16; i++) {
14067 L4_MABX_B.Reshape_d[i] = L4_MABX_P.Repeating_Sequence_Stair_Out_lg[i];
14068 }
14069
14070 /* End of Reshape: '<S991>/Reshape' */
14071
14072 /* UnitDelay: '<S991>/Unit_Delay' */
14073 L4_MABX_B.Unit_Delay_h = L4_MABX_DW.Unit_Delay_DSTATE_o4;
14074
14075 /* UnitDelay: '<S992>/Unit Delay' */
14076 L4_MABX_B.UnitDelay_g = L4_MABX_DW.UnitDelay_DSTATE_n;
14077
14078 /* Switch: '<S995>/Switch1' incorporates:
14079 * Constant: '<S992>/E'
14080 * Constant: '<S992>/IV'
14081 * Switch: '<S994>/Switch1'
14082 */
14083 if (L4_MABX_B.Unit_Delay_h) {
14084 L4_MABX_B.Switch1_c = L4_MABX_P.IV_Value_hq;
14085 } else {
14086 if (L4_MABX_P.E_Value_h) {
14087 /* Sum: '<S992>/Subtract' incorporates:
14088 * Constant: '<S992>/Constant'
14089 * Switch: '<S994>/Switch1'
14090 */
14091 q0 = L4_MABX_P.Constant_Value_jl;
14092 tmp = q0 + L4_MABX_B.UnitDelay_g;
14093 if (tmp < q0) {
14094 tmp = MAX_uint32_T;
14095 }
14096
14097 L4_MABX_B.Subtract_oi = tmp;
14098
14099 /* End of Sum: '<S992>/Subtract' */
14100
14101 /* Switch: '<S994>/Switch1' */
14102 L4_MABX_B.Switch1_id = L4_MABX_B.Subtract_oi;
14103 } else {
14104 /* Switch: '<S994>/Switch1' */
14105 L4_MABX_B.Switch1_id = L4_MABX_B.UnitDelay_g;
14106 }
14107
14108 L4_MABX_B.Switch1_c = L4_MABX_B.Switch1_id;
14109 }
14110
14111 /* End of Switch: '<S995>/Switch1' */
14112
14113 /* Selector: '<S991>/Selector' */
14114 L4_MABX_B.Selector_d = L4_MABX_B.Reshape_d[(int32_T)L4_MABX_B.Switch1_c - 1];
14115
14116 /* DataTypeConversion: '<S961>/Data Type Conversion1' */
14117 L4_MABX_B.DataTypeConversion1_ki = L4_MABX_B.Selector_d;
14118
14119 /* S-Function (sfix_bitop): '<S974>/Operator' */
14120 L4_MABX_B.Operator_l2b = (uint8_T)(L4_MABX_B.DataTypeConversion1_ki &
14121 L4_MABX_P.Operator_BitMask_co);
14122
14123 /* DataTypeConversion: '<S974>/DataType' */
14124 L4_MABX_B.DataType_er = L4_MABX_B.Operator_l2b;
14125
14126 /* DataTypeConversion: '<S960>/Data Type Conversion' incorporates:
14127 * Constant: '<S960>/Priority'
14128 */
14129 L4_MABX_B.DataTypeConversion_g = L4_MABX_P.Priority_Value_d;
14130
14131 /* ArithShift: '<S960>/Shift_Arithmetic ' */
14132 L4_MABX_B.Shift_Arithmetic_kb = L4_MABX_B.DataTypeConversion_g << 26;
14133
14134 /* DataTypeConversion: '<S960>/Data Type Conversion1' incorporates:
14135 * Constant: '<S960>/ExtendedDataPage'
14136 */
14137 L4_MABX_B.DataTypeConversion1_jx = L4_MABX_P.ExtendedDataPage_Value_k;
14138
14139 /* ArithShift: '<S960>/Shift_Arithmetic 1' */
14140 L4_MABX_B.Shift_Arithmetic1_np = L4_MABX_B.DataTypeConversion1_jx << 25;
14141
14142 /* DataTypeConversion: '<S960>/Data Type Conversion2' incorporates:
14143 * Constant: '<S960>/DataPage'
14144 */
14145 L4_MABX_B.DataTypeConversion2_j = L4_MABX_P.DataPage_Value_b;
14146
14147 /* ArithShift: '<S960>/Shift_Arithmetic 2' */
14148 L4_MABX_B.Shift_Arithmetic2_f1 = L4_MABX_B.DataTypeConversion2_j << 24;
14149
14150 /* DataTypeConversion: '<S960>/Data Type Conversion3' incorporates:
14151 * Constant: '<S960>/PDUFormat'
14152 */
14153 L4_MABX_B.DataTypeConversion3_d = L4_MABX_P.PDUFormat_Value_a;
14154
14155 /* ArithShift: '<S960>/Shift_Arithmetic 3' */
14156 L4_MABX_B.Shift_Arithmetic3_e = L4_MABX_B.DataTypeConversion3_d << 16;
14157
14158 /* DataTypeConversion: '<S960>/Data Type Conversion4' incorporates:
14159 * Constant: '<S960>/PDUSpecific'
14160 */
14161 L4_MABX_B.DataTypeConversion4_f = L4_MABX_P.PDUSpecific_Value_m;
14162
14163 /* ArithShift: '<S960>/Shift_Arithmetic 4' */
14164 L4_MABX_B.Shift_Arithmetic4_ev = L4_MABX_B.DataTypeConversion4_f << 8;
14165
14166 /* DataTypeConversion: '<S960>/Data Type Conversion5' incorporates:
14167 * Constant: '<S960>/SourceAddress'
14168 */
14169 L4_MABX_B.DataTypeConversion5_om = L4_MABX_P.SourceAddress_Value_o;
14170
14171 /* S-Function (sfix_bitop): '<S965>/Operator' */
14172 L4_MABX_B.Operator_c = L4_MABX_B.Shift_Arithmetic_kb |
14173 L4_MABX_B.Shift_Arithmetic1_np | L4_MABX_B.Shift_Arithmetic2_f1 |
14174 L4_MABX_B.Shift_Arithmetic3_e | L4_MABX_B.Shift_Arithmetic4_ev |
14175 L4_MABX_B.DataTypeConversion5_om;
14176
14177 /* DataTypeConversion: '<S965>/DataType' */
14178 L4_MABX_B.DataType_bv = L4_MABX_B.Operator_c;
14179
14180 /* DataTypeConversion: '<S961>/Data Type Conversion3' */
14181 L4_MABX_B.DataTypeConversion3_b = L4_MABX_B.DataType_bv;
14182
14183 /* S-Function (sfix_bitop): '<S970>/Operator' */
14184 L4_MABX_B.Operator_f = L4_MABX_B.DataTypeConversion3_b &
14185 L4_MABX_P.Operator_BitMask_jm;
14186
14187 /* DataTypeConversion: '<S970>/DataType' */
14188 tmp = L4_MABX_B.Operator_f;
14189 if (tmp > 255U) {
14190 tmp = 255U;
14191 }
14192
14193 L4_MABX_B.DataType_og = (uint8_T)tmp;
14194
14195 /* End of DataTypeConversion: '<S970>/DataType' */
14196
14197 /* S-Function (sfix_bitop): '<S971>/Operator' */
14198 L4_MABX_B.Operator_bn = L4_MABX_B.DataTypeConversion3_b &
14199 L4_MABX_P.Operator_BitMask_hn;
14200
14201 /* DataTypeConversion: '<S971>/DataType' */
14202 tmp = L4_MABX_B.Operator_bn;
14203 if (tmp > 65535U) {
14204 tmp = 65535U;
14205 }
14206
14207 L4_MABX_B.DataType_pf = (uint16_T)tmp;
14208
14209 /* End of DataTypeConversion: '<S971>/DataType' */
14210
14211 /* ArithShift: '<S961>/Shift_Arithmetic 3' */
14212 L4_MABX_B.Shift_Arithmetic3_n = (uint16_T)((uint32_T)L4_MABX_B.DataType_pf >>
14213 8);
14214
14215 /* DataTypeConversion: '<S961>/Data Type Conversion8' */
14216 tmp_0 = L4_MABX_B.Shift_Arithmetic3_n;
14217 if (tmp_0 > 255) {
14218 tmp_0 = 255U;
14219 }
14220
14221 L4_MABX_B.DataTypeConversion8_k = (uint8_T)tmp_0;
14222
14223 /* End of DataTypeConversion: '<S961>/Data Type Conversion8' */
14224
14225 /* S-Function (sfix_bitop): '<S972>/Operator' */
14226 L4_MABX_B.Operator_dk = L4_MABX_B.DataTypeConversion3_b &
14227 L4_MABX_P.Operator_BitMask_ns;
14228
14229 /* DataTypeConversion: '<S972>/DataType' */
14230 L4_MABX_B.DataType_jt = L4_MABX_B.Operator_dk;
14231
14232 /* ArithShift: '<S961>/Shift_Arithmetic 4' */
14233 L4_MABX_B.Shift_Arithmetic4_k = L4_MABX_B.DataType_jt >> 16;
14234
14235 /* DataTypeConversion: '<S961>/Data Type Conversion9' */
14236 tmp = L4_MABX_B.Shift_Arithmetic4_k;
14237 if (tmp > 255U) {
14238 tmp = 255U;
14239 }
14240
14241 L4_MABX_B.DataTypeConversion9_hp = (uint8_T)tmp;
14242
14243 /* End of DataTypeConversion: '<S961>/Data Type Conversion9' */
14244
14245 /* S-Function (sfix_bitop): '<S973>/Operator' */
14246 L4_MABX_B.Operator_j = L4_MABX_B.DataTypeConversion3_b &
14247 L4_MABX_P.Operator_BitMask_ab;
14248
14249 /* DataTypeConversion: '<S973>/DataType' */
14250 L4_MABX_B.DataType_iu = L4_MABX_B.Operator_j;
14251
14252 /* ArithShift: '<S961>/Shift_Arithmetic 5' */
14253 L4_MABX_B.Shift_Arithmetic5_f = L4_MABX_B.DataType_iu >> 24;
14254
14255 /* DataTypeConversion: '<S961>/Data Type Conversion10' */
14256 tmp = L4_MABX_B.Shift_Arithmetic5_f;
14257 if (tmp > 255U) {
14258 tmp = 255U;
14259 }
14260
14261 L4_MABX_B.DataTypeConversion10_h = (uint8_T)tmp;
14262
14263 /* End of DataTypeConversion: '<S961>/Data Type Conversion10' */
14264
14265 /* Sum: '<S961>/Add' incorporates:
14266 * Constant: '<S961>/Constant'
14267 * Constant: '<S961>/Constant1'
14268 */
14269 L4_MABX_B.Add_i = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
14270 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
14271 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
14272 (uint8_T)((uint32_T)L4_MABX_B.DataTypeConversion_f2 + L4_MABX_B.DataType_ju)
14273 + L4_MABX_B.DataTypeConversion4_e4) + L4_MABX_B.DataTypeConversion5_f) +
14274 L4_MABX_B.DataTypeConversion6_iz) + L4_MABX_P.Constant_Value_m24) +
14275 L4_MABX_P.Constant1_Value_gh) + L4_MABX_B.DataType_og) +
14276 L4_MABX_B.DataTypeConversion8_k) +
14277 L4_MABX_B.DataTypeConversion9_hp) + L4_MABX_B.DataTypeConversion10_h) +
14278 L4_MABX_B.DataType_er);
14279
14280 /* ArithShift: '<S961>/Shift_Arithmetic 6' */
14281 L4_MABX_B.Shift_Arithmetic6_j = (uint8_T)((uint32_T)L4_MABX_B.Add_i >> 4);
14282
14283 /* Sum: '<S961>/Add1' */
14284 L4_MABX_B.Add1_ir = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic6_j +
14285 L4_MABX_B.Add_i);
14286
14287 /* S-Function (sfix_bitop): '<S975>/Operator' */
14288 L4_MABX_B.Operator_jq = (uint8_T)(L4_MABX_B.Add1_ir &
14289 L4_MABX_P.Operator_BitMask_kf);
14290
14291 /* DataTypeConversion: '<S975>/DataType' */
14292 L4_MABX_B.DataType_nu = L4_MABX_B.Operator_jq;
14293
14294 /* ArithShift: '<S961>/Shift_Arithmetic 7' */
14295 L4_MABX_B.Shift_Arithmetic7_c = (uint8_T)(L4_MABX_B.DataType_nu << 4);
14296
14297 /* S-Function (sfix_bitop): '<S976>/Operator' */
14298 L4_MABX_B.Operator_ci = (uint8_T)(L4_MABX_B.DataType_er |
14299 L4_MABX_B.Shift_Arithmetic7_c);
14300
14301 /* DataTypeConversion: '<S976>/DataType' */
14302 L4_MABX_B.DataType_hz = L4_MABX_B.Operator_ci;
14303
14304 /* DataTypeConversion: '<S927>/Data Type Conversion1' incorporates:
14305 * Constant: '<S961>/Constant'
14306 * Constant: '<S961>/Constant1'
14307 */
14308 L4_MABX_B.DataTypeConversion1_p[0] = L4_MABX_B.DataTypeConversion_f2;
14309 L4_MABX_B.DataTypeConversion1_p[1] = L4_MABX_B.DataType_ju;
14310 L4_MABX_B.DataTypeConversion1_p[2] = L4_MABX_B.DataTypeConversion4_e4;
14311 L4_MABX_B.DataTypeConversion1_p[3] = L4_MABX_B.DataTypeConversion5_f;
14312 L4_MABX_B.DataTypeConversion1_p[4] = L4_MABX_B.DataTypeConversion6_iz;
14313 L4_MABX_B.DataTypeConversion1_p[5] = L4_MABX_P.Constant_Value_m24;
14314 L4_MABX_B.DataTypeConversion1_p[6] = L4_MABX_P.Constant1_Value_gh;
14315 L4_MABX_B.DataTypeConversion1_p[7] = L4_MABX_B.DataType_hz;
14316
14317 /* Outputs for Enabled SubSystem: '<S948>/PropB_REAX_1_E4' incorporates:
14318 * EnablePort: '<S950>/Enable'
14319 */
14320 if (L4_MABX_B.Operator_iv) {
14321 /* S-Function (rti_commonblock): '<S950>/S-Function1' incorporates:
14322 * Constant: '<S948>/Constant'
14323 * Constant: '<S948>/Constant1'
14324 */
14325 /* This comment workarounds a code generation problem */
14326
14327 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
14328 {
14329 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14330 0x00 };
14331
14332 Float32 delayTime = 0.0;
14333
14334 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14335 CANTP1_PTR_M1_C2_XTD_0x18FFEFE4 = &(CAN_Msg[0]);
14336
14337 /* ... perform loop-back if required */
14338 if (L4_MABX_P.Constant1_Value_b > 0.5) {
14339 /* ... updating the used tx-clientbuffer */
14340 can_tp1_msg_update_all( CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->module,
14341 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->queue );
14342
14343 /* ... Read status and timestamp info perform loop-back (previous message) */
14344 can_tp1_tx_msg_read_loopback(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4,
14345 8, // datalen
14346 &(CAN_Msg[0]),
14347 CANTP1_RX_SPMSG_M1_C2_XTD);
14348
14349 /* Convert timestamp */
14350 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14351 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14352 rtk_dsts_time_to_simtime_convert
14353 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14354 }
14355 } else {
14356 /* ... Read status and timestamp info (previous message) */
14357 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4);
14358
14359 /* Convert timestamp */
14360 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14361 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14362 rtk_dsts_time_to_simtime_convert
14363 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14364 }
14365 }
14366
14367 /* Messages with timestamp zero have been received in pause/stop state
14368 and must not be handled.
14369 */
14370 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp > 0.0) {
14371 L4_MABX_B.SFunction1_o1_g = (real_T)
14372 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed;
14373 L4_MABX_B.SFunction1_o2_a = (real_T)
14374 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp;
14375 L4_MABX_B.SFunction1_o3_pb = (real_T)
14376 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->deltatime;
14377 L4_MABX_B.SFunction1_o4_lk = (real_T)
14378 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->delaytime;
14379 }
14380
14381 /* ... Encode Simulink signals of TX and RM blocks*/
14382 {
14383 rtican_Signal_t CAN_Sgn;
14384 UInt32 i;
14385
14386 /* Initialize the static message data to zero */
14387 for (i=0; i<8; i++ )
14388 CAN_Msg[i] = 0;
14389
14390 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
14391 /* Add or substract 0.5 in order to round to nearest integer */
14392 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[0] ) +
14393 0.5);
14394 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14395 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14396
14397 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
14398 /* Add or substract 0.5 in order to round to nearest integer */
14399 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[1] ) +
14400 0.5);
14401 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14402 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14403
14404 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
14405 /* Add or substract 0.5 in order to round to nearest integer */
14406 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[2] ) +
14407 0.5);
14408 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14409 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14410
14411 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
14412 /* Add or substract 0.5 in order to round to nearest integer */
14413 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[3] ) +
14414 0.5);
14415 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14416 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14417
14418 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
14419 /* Add or substract 0.5 in order to round to nearest integer */
14420 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[4] ) +
14421 0.5);
14422 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14423 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14424
14425 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
14426 /* Add or substract 0.5 in order to round to nearest integer */
14427 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[5] ) +
14428 0.5);
14429 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14430 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14431
14432 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
14433 /* Add or substract 0.5 in order to round to nearest integer */
14434 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[6] ) +
14435 0.5);
14436 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14437 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
14438
14439 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
14440 /* Add or substract 0.5 in order to round to nearest integer */
14441 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[7] ) +
14442 0.5);
14443 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14444 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14445 }
14446
14447 delayTime = (Float32) L4_MABX_P.Constant_Value_ie / (1700);
14448
14449 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14450 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFEFE4], 8,
14451 &(CAN_Msg[0]), delayTime);
14452 }
14453 }
14454
14455 /* End of Outputs for SubSystem: '<S948>/PropB_REAX_1_E4' */
14456
14457 /* Outputs for Enabled SubSystem: '<S949>/PropB_REAX_1_E4' incorporates:
14458 * EnablePort: '<S951>/Enable'
14459 */
14460 if (L4_MABX_B.EnablePropB_ReAX_CAN6) {
14461 /* S-Function (rti_commonblock): '<S951>/S-Function1' incorporates:
14462 * Constant: '<S949>/Constant'
14463 * Constant: '<S949>/Constant1'
14464 */
14465 /* This comment workarounds a code generation problem */
14466
14467 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
14468 {
14469 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14470 0x00 };
14471
14472 Float32 delayTime = 0.0;
14473
14474 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14475 CANTP1_PTR_M3_C2_XTD_0x18FFEFE4 = &(CAN_Msg[0]);
14476
14477 /* ... perform loop-back if required */
14478 if (L4_MABX_P.Constant1_Value_ny > 0.5) {
14479 /* ... updating the used tx-clientbuffer */
14480 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->module,
14481 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->queue );
14482
14483 /* ... Read status and timestamp info perform loop-back (previous message) */
14484 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4,
14485 8, // datalen
14486 &(CAN_Msg[0]),
14487 CANTP1_RX_SPMSG_M3_C2_XTD);
14488
14489 /* Convert timestamp */
14490 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14491 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14492 rtk_dsts_time_to_simtime_convert
14493 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14494 }
14495 } else {
14496 /* ... Read status and timestamp info (previous message) */
14497 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4);
14498
14499 /* Convert timestamp */
14500 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14501 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14502 rtk_dsts_time_to_simtime_convert
14503 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14504 }
14505 }
14506
14507 /* Messages with timestamp zero have been received in pause/stop state
14508 and must not be handled.
14509 */
14510 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp > 0.0) {
14511 L4_MABX_B.SFunction1_o1_dr = (real_T)
14512 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed;
14513 L4_MABX_B.SFunction1_o2_b = (real_T)
14514 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp;
14515 L4_MABX_B.SFunction1_o3_b = (real_T)
14516 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->deltatime;
14517 L4_MABX_B.SFunction1_o4_a0 = (real_T)
14518 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->delaytime;
14519 }
14520
14521 /* ... Encode Simulink signals of TX and RM blocks*/
14522 {
14523 rtican_Signal_t CAN_Sgn;
14524 UInt32 i;
14525
14526 /* Initialize the static message data to zero */
14527 for (i=0; i<8; i++ )
14528 CAN_Msg[i] = 0;
14529
14530 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
14531 /* Add or substract 0.5 in order to round to nearest integer */
14532 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[0] ) +
14533 0.5);
14534 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14535 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14536
14537 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
14538 /* Add or substract 0.5 in order to round to nearest integer */
14539 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[1] ) +
14540 0.5);
14541 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14542 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14543
14544 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
14545 /* Add or substract 0.5 in order to round to nearest integer */
14546 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[2] ) +
14547 0.5);
14548 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14549 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14550
14551 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
14552 /* Add or substract 0.5 in order to round to nearest integer */
14553 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[3] ) +
14554 0.5);
14555 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14556 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14557
14558 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
14559 /* Add or substract 0.5 in order to round to nearest integer */
14560 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[4] ) +
14561 0.5);
14562 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14563 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14564
14565 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
14566 /* Add or substract 0.5 in order to round to nearest integer */
14567 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[5] ) +
14568 0.5);
14569 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14570 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14571
14572 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
14573 /* Add or substract 0.5 in order to round to nearest integer */
14574 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[6] ) +
14575 0.5);
14576 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14577 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
14578
14579 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
14580 /* Add or substract 0.5 in order to round to nearest integer */
14581 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[7] ) +
14582 0.5);
14583 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14584 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14585 }
14586
14587 delayTime = (Float32) L4_MABX_P.Constant_Value_h4 / (1700);
14588
14589 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14590 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFEFE4], 8,
14591 &(CAN_Msg[0]), delayTime);
14592 }
14593 }
14594
14595 /* End of Outputs for SubSystem: '<S949>/PropB_REAX_1_E4' */
14596
14597 /* DataTypeConversion: '<S928>/Data Type Conversion' incorporates:
14598 * Constant: '<S839>/CANT_VDC2_0B_CHANNEL_APV'
14599 */
14600 L4_MABX_B.DataTypeConversion_mo0 = (uint8_T)
14601 L4_MABX_P.CANT_VDC2_0B_CHANNEL_APV_Value;
14602
14603 /* S-Function (sfix_bitop): '<S956>/Operator' */
14604 L4_MABX_B.Operator_lv = (uint8_T)(L4_MABX_B.DataTypeConversion_mo0 &
14605 L4_MABX_P.Operator_BitMask_mmr);
14606
14607 /* DataTypeConversion: '<S956>/DataType' */
14608 L4_MABX_B.DataType_o = L4_MABX_B.Operator_lv;
14609
14610 /* ArithShift: '<S928>/Shift_Arithmetic 3' */
14611 L4_MABX_B.Shift_Arithmetic3_b = ldexp(L4_MABX_B.DataType_o, (-4));
14612
14613 /* DataTypeConversion: '<S928>/Data Type Conversion6' */
14614 L4_MABX_B.DataTypeConversion6_cg = (L4_MABX_B.Shift_Arithmetic3_b != 0.0);
14615
14616 /* Outputs for Enabled SubSystem: '<S958>/VDC2_0B' incorporates:
14617 * EnablePort: '<S959>/Enable'
14618 */
14619 if (L4_MABX_B.DataTypeConversion6_cg) {
14620 /* S-Function (rti_commonblock): '<S959>/S-Function1' */
14621 /* This comment workarounds a code generation problem */
14622
14623 /* dSPACE RTICAN TX Message Block: "VDC2_0B" Id:418384139 */
14624 {
14625 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
14626
14627 Float32 delayTime = 0.0;
14628
14629 /* ... Read status and timestamp info (previous message) */
14630 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]);
14631
14632 /* Convert timestamp */
14633 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->processed) {
14634 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp =
14635 rtk_dsts_time_to_simtime_convert
14636 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp);
14637 }
14638
14639 /* Messages with timestamp zero have been received in pause/stop state
14640 and must not be handled.
14641 */
14642 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp > 0.0) {
14643 L4_MABX_B.SFunction1_o1_mr = (real_T)
14644 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->processed;
14645 L4_MABX_B.SFunction1_o2_lz = (real_T)
14646 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp;
14647 L4_MABX_B.SFunction1_o3_pt = (real_T)
14648 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->deltatime;
14649 L4_MABX_B.SFunction1_o4_l = (real_T)
14650 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->delaytime;
14651 }
14652
14653 /* ... Encode Simulink signals of TX and RM blocks*/
14654 {
14655 rtican_Signal_t CAN_Sgn;
14656
14657 /* ...... "SteerWheelAngle" (0|16, standard signal, unsigned int, little endian) */
14658 /* Add or substract 0.5 in order to round to nearest integer */
14659 CAN_Sgn.UnsignedSgn = (UInt32) (( SteerWheelAngle - ( -31.374 ) ) /
14660 0.0009765625 + 0.5);
14661 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14662 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14663 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
14664
14665 /* ...... "SteerWheelTurnCounter" (16|6, standard signal, unsigned int, little endian) */
14666 /* Add or substract 0.5 in order to round to nearest integer */
14667 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.SFunction1_o2_m3 - ( -32 ) +
14668 0.5);
14669 CAN_Sgn.UnsignedSgn &= 0x0000003F;
14670 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14671
14672 /* ...... "SteerWheelAngleSensorType" (22|2, standard signal, unsigned int, little endian) */
14673 /* Add or substract 0.5 in order to round to nearest integer */
14674 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o3_f1 ) + 0.5);
14675 CAN_Sgn.UnsignedSgn &= 0x00000003;
14676 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
14677 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14678
14679 /* ...... "YawRate" (24|16, standard signal, unsigned int, little endian) */
14680 /* Add or substract 0.5 in order to round to nearest integer */
14681 CAN_Sgn.UnsignedSgn = (UInt32) (( YawRate - ( -3.92 ) ) /
14682 0.0001220703125 + 0.5);
14683 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14684 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14685 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
14686
14687 /* ...... "LateralAcceleration" (40|16, standard signal, unsigned int, little endian) */
14688 /* Add or substract 0.5 in order to round to nearest integer */
14689 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o5_g - ( -15.687 )
14690 ) / 0.00048828125 + 0.5);
14691 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14692 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14693 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte1;
14694
14695 /* ...... "LongitudinalAcceleration" (56|8, standard signal, unsigned int, little endian) */
14696 /* Add or substract 0.5 in order to round to nearest integer */
14697 CAN_Sgn.UnsignedSgn = (UInt32) (( SPN1810_LongitudinalAcceleration -
14698 ( -12.5 ) ) / 0.1 + 0.5);
14699 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14700 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14701 }
14702
14703 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14704 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B], 8,
14705 &(CAN_Msg[0]), delayTime);
14706 }
14707 }
14708
14709 /* End of Outputs for SubSystem: '<S958>/VDC2_0B' */
14710
14711 /* S-Function (sfix_bitop): '<S952>/Operator' */
14712 L4_MABX_B.Operator_h = (uint8_T)(L4_MABX_B.DataTypeConversion_mo0 &
14713 L4_MABX_P.Operator_BitMask_hm);
14714
14715 /* DataTypeConversion: '<S952>/DataType' */
14716 L4_MABX_B.DataType_hm = L4_MABX_B.Operator_h;
14717
14718 /* S-Function (sfix_bitop): '<S953>/Operator' */
14719 L4_MABX_B.Operator_cw = (uint8_T)(L4_MABX_B.DataTypeConversion_mo0 &
14720 L4_MABX_P.Operator_BitMask_b);
14721
14722 /* DataTypeConversion: '<S953>/DataType' */
14723 L4_MABX_B.DataType_b = L4_MABX_B.Operator_cw;
14724
14725 /* S-Function (sfix_bitop): '<S954>/Operator' */
14726 L4_MABX_B.Operator_ir = (uint8_T)(L4_MABX_B.DataTypeConversion_mo0 &
14727 L4_MABX_P.Operator_BitMask_eh);
14728
14729 /* DataTypeConversion: '<S954>/DataType' */
14730 L4_MABX_B.DataType_l = L4_MABX_B.Operator_ir;
14731
14732 /* S-Function (sfix_bitop): '<S955>/Operator' */
14733 L4_MABX_B.Operator_ee = (uint8_T)(L4_MABX_B.DataTypeConversion_mo0 &
14734 L4_MABX_P.Operator_BitMask_bv);
14735
14736 /* DataTypeConversion: '<S955>/DataType' */
14737 L4_MABX_B.DataType_n = L4_MABX_B.Operator_ee;
14738
14739 /* S-Function (sfix_bitop): '<S957>/Operator' */
14740 L4_MABX_B.Operator_eq = (uint8_T)(L4_MABX_B.DataTypeConversion_mo0 &
14741 L4_MABX_P.Operator_BitMask_gv);
14742
14743 /* DataTypeConversion: '<S957>/DataType' */
14744 L4_MABX_B.DataType_c1 = L4_MABX_B.Operator_eq;
14745
14746 /* DataTypeConversion: '<S928>/Data Type Conversion1' */
14747 L4_MABX_B.DataTypeConversion1_nd = (L4_MABX_B.DataType_hm != 0);
14748
14749 /* ArithShift: '<S928>/Shift_Arithmetic ' */
14750 L4_MABX_B.Shift_Arithmetic_f = ldexp(L4_MABX_B.DataType_b, (-1));
14751
14752 /* DataTypeConversion: '<S928>/Data Type Conversion3' */
14753 L4_MABX_B.DataTypeConversion3_jz = (L4_MABX_B.Shift_Arithmetic_f != 0.0);
14754
14755 /* ArithShift: '<S928>/Shift_Arithmetic 1' */
14756 L4_MABX_B.Shift_Arithmetic1_e = ldexp(L4_MABX_B.DataType_l, (-2));
14757
14758 /* DataTypeConversion: '<S928>/Data Type Conversion4' */
14759 L4_MABX_B.DataTypeConversion4_no = (L4_MABX_B.Shift_Arithmetic1_e != 0.0);
14760
14761 /* ArithShift: '<S928>/Shift_Arithmetic 2' */
14762 L4_MABX_B.Shift_Arithmetic2_h = ldexp(L4_MABX_B.DataType_n, (-3));
14763
14764 /* DataTypeConversion: '<S928>/Data Type Conversion5' */
14765 L4_MABX_B.DataTypeConversion5_ct = (L4_MABX_B.Shift_Arithmetic2_h != 0.0);
14766
14767 /* ArithShift: '<S928>/Shift_Arithmetic 4' */
14768 L4_MABX_B.Shift_Arithmetic4_l = ldexp(L4_MABX_B.DataType_c1, (-5));
14769
14770 /* DataTypeConversion: '<S928>/Data Type Conversion7' */
14771 L4_MABX_B.DataTypeConversion7_ir = (L4_MABX_B.Shift_Arithmetic4_l != 0.0);
14772
14773 /* Logic: '<S989>/Logical Operator1' */
14774 L4_MABX_B.LogicalOperator1_e = !L4_MABX_B.Operator_MX;
14775
14776 /* Logic: '<S989>/Logical Operator' */
14777 L4_MABX_B.LogicalOperator_kz = (L4_MABX_B.LogicalOperator1_e &&
14778 L4_MABX_B.Operator_MN);
14779
14780 /* RelationalOperator: '<S993>/Operator' */
14781 L4_MABX_B.Operator_ll3 = (L4_MABX_B.Switch1_c == L4_MABX_B.Width_p);
14782
14783 /* End of Outputs for SubSystem: '<S834>/CAN_TX_10ms' */
14784
14785 /* Outputs for Atomic SubSystem: '<S834>/CAN_TX_20ms' */
14786
14787 /* RateTransition: '<S1000>/TmpRTBAtDivide1Inport1' */
14788 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
14789 L4_MABX_B.BrakingPID_Y_g = L4_MABX_B.BrakingPID_Y_k;
14790 L4_MABX_B.AutonomousOutputEnabled_g = AutonomousOutputEnabled;
14791 L4_MABX_B.BrakingControlActive_m = L4_MABX_B.F_Brake_control_active;
14792 L4_MABX_B.TmpRTBAtLogicalOperator8Inport1 = AutonomousOutputEnabled;
14793 L4_MABX_B.TmpRTBAtLogicalOperator1Inport2 = AutonomousOutputEnabled;
14794 L4_MABX_B.TmpRTBAtUnit_DelayInport1 = AutonomousOutputEnabled;
14795 L4_MABX_B.BrakingPID_Y_gl = L4_MABX_B.BrakingPID_Y_k;
14796 L4_MABX_B.FrontAxleSpeed_o = L4_MABX_B.SFunction1_o1_m1;
14797 L4_MABX_B.SPN1807_SteeringWheelAngle_n = SteerWheelAngle;
14798 L4_MABX_B.SPN1808_YawRate_l = YawRate;
14799 L4_MABX_B.SPN1810_LongitudinalAccelerat_j = SPN1810_LongitudinalAcceleration;
14800 }
14801
14802 /* End of Outputs for SubSystem: '<S834>/CAN_TX_20ms' */
14803
14804 /* Outputs for Atomic SubSystem: '<S834>/CAN_TX_5000ms' */
14805
14806 /* RateTransition: '<S1029>/TmpRTBAtOperatorInport2' */
14807 if (L4_MABX_M->Timing.RateInteraction.TID0_7 == 1) {
14808 L4_MABX_B.TmpRTBAtOperatorInport2 = AutonomousOutputEnabled;
14809 }
14810
14811 /* End of RateTransition: '<S1029>/TmpRTBAtOperatorInport2' */
14812
14813 /* End of Outputs for SubSystem: '<S834>/CAN_TX_5000ms' */
14814
14815 /* Outputs for Enabled SubSystem: '<S635>/TC1_03_05' incorporates:
14816 * EnablePort: '<S636>/Enable'
14817 */
14818 /* Constant: '<S450>/Constant' */
14819 if (L4_MABX_P.Constant_Value_au) {
14820 /* S-Function (rti_commonblock): '<S636>/S-Function1' */
14821 /* This comment workarounds a code generation problem */
14822
14823 /* dSPACE RTICAN RX Message Block: "TC1_03_05" Id:201392901 */
14824 {
14825 UInt32 *CAN_Msg;
14826 static dsfloat time_old = 0.0;
14827
14828 /* Read status and timestamp info (previous message) */
14829 if (can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].timestamp !=
14830 time_old) {
14831 /* ... save timestamp info for the calculation of the RX status
14832 during the consecutive sample hit*/
14833 time_old = can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].
14834 timestamp;
14835
14836 /* ... set the processed flag to one */
14837 L4_MABX_B.SFunction1_o26 = 1.0;
14838 L4_MABX_B.SFunction1_o27 = (real_T)
14839 can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].timestamp;
14840 L4_MABX_B.SFunction1_o28 = (real_T)
14841 can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].deltatime;
14842 CAN_Msg = can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].data;
14843
14844 /* Decode CAN message */
14845 {
14846 {
14847 rtican_Signal_t CAN_Sgn;
14848
14849 /* ...... "SPN681_TransGearShiftInhibitReq" (0|2, standard signal, unsigned int, little endian) */
14850 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14851 CAN_Sgn.UnsignedSgn &= 0x00000003;
14852 L4_MABX_B.SFunction1_o1_cr = ((real_T) CAN_Sgn.UnsignedSgn);
14853
14854 /* ...... "SPN682_TransTrqConvLockupDisReq" (2|2, standard signal, unsigned int, little endian) */
14855 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14856 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14857 CAN_Sgn.UnsignedSgn &= 0x00000003;
14858 L4_MABX_B.SFunction1_o2_ir = ((real_T) CAN_Sgn.UnsignedSgn);
14859
14860 /* ...... "SPN683_DisengageDrivelineReq" (4|2, standard signal, unsigned int, little endian) */
14861 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14862 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14863 CAN_Sgn.UnsignedSgn &= 0x00000003;
14864 L4_MABX_B.SFunction1_o3_b4 = ((real_T) CAN_Sgn.UnsignedSgn);
14865
14866 /* ...... "SPN4242_TransRevGearShiftInhibRq" (6|2, standard signal, unsigned int, little endian) */
14867 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14868 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14869 CAN_Sgn.UnsignedSgn &= 0x00000003;
14870 L4_MABX_B.SFunction1_o4_on = ((real_T) CAN_Sgn.UnsignedSgn);
14871
14872 /* ...... "SPN684_RequestedPercClutchSlip" (8|8, standard signal, unsigned int, little endian) */
14873 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
14874 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14875 L4_MABX_B.SFunction1_o5_f = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
14876
14877 /* ...... "SPN525_TransRequestedGear" (16|8, standard signal, unsigned int, little endian) */
14878 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
14879 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14880 L4_MABX_B.SFunction1_o6_l = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
14881
14882 /* ...... "SPN685_DisengageDiffLockRqFrAx1" (24|2, standard signal, unsigned int, little endian) */
14883 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14884 CAN_Sgn.UnsignedSgn &= 0x00000003;
14885 L4_MABX_B.SFunction1_o7_d = ((real_T) CAN_Sgn.UnsignedSgn);
14886
14887 /* ...... "SPN686_DisengageDiffLockRqFrAx2" (26|2, standard signal, unsigned int, little endian) */
14888 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14889 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14890 CAN_Sgn.UnsignedSgn &= 0x00000003;
14891 L4_MABX_B.SFunction1_o8_g = ((real_T) CAN_Sgn.UnsignedSgn);
14892
14893 /* ...... "SPN687_DisengageDiffLockRqRrAx1" (28|2, standard signal, unsigned int, little endian) */
14894 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14895 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14896 CAN_Sgn.UnsignedSgn &= 0x00000003;
14897 L4_MABX_B.SFunction1_o9_l = ((real_T) CAN_Sgn.UnsignedSgn);
14898
14899 /* ...... "SPN688_DisengageDiffLockRqRrAx2" (30|2, standard signal, unsigned int, little endian) */
14900 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14901 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14902 CAN_Sgn.UnsignedSgn &= 0x00000003;
14903 L4_MABX_B.SFunction1_o10_d = ((real_T) CAN_Sgn.UnsignedSgn);
14904
14905 /* ...... "SPN689_DisengageDiffLockRqC" (32|2, standard signal, unsigned int, little endian) */
14906 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14907 CAN_Sgn.UnsignedSgn &= 0x00000003;
14908 L4_MABX_B.SFunction1_o11 = ((real_T) CAN_Sgn.UnsignedSgn);
14909
14910 /* ...... "SPN690_DisengageDiffLockRqCF" (34|2, standard signal, unsigned int, little endian) */
14911 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14912 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14913 CAN_Sgn.UnsignedSgn &= 0x00000003;
14914 L4_MABX_B.SFunction1_o12 = ((real_T) CAN_Sgn.UnsignedSgn);
14915
14916 /* ...... "SPN691_DisengageDiffLockRqCR" (36|2, standard signal, unsigned int, little endian) */
14917 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14918 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14919 CAN_Sgn.UnsignedSgn &= 0x00000003;
14920 L4_MABX_B.SFunction1_o13 = ((real_T) CAN_Sgn.UnsignedSgn);
14921
14922 /* ...... "SPN5762_TransLoadRedInhibitRq" (38|2, standard signal, unsigned int, little endian) */
14923 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14924 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14925 CAN_Sgn.UnsignedSgn &= 0x00000003;
14926 L4_MABX_B.SFunction1_o14 = ((real_T) CAN_Sgn.UnsignedSgn);
14927
14928 /* ...... "SPN1852_TransmissionMode1" (40|2, standard signal, unsigned int, little endian) */
14929 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14930 CAN_Sgn.UnsignedSgn &= 0x00000003;
14931 L4_MABX_B.SFunction1_o15 = ((real_T) CAN_Sgn.UnsignedSgn);
14932
14933 /* ...... "SPN1853_TransmissionMode2" (42|2, standard signal, unsigned int, little endian) */
14934 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14935 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14936 CAN_Sgn.UnsignedSgn &= 0x00000003;
14937 L4_MABX_B.SFunction1_o16 = ((real_T) CAN_Sgn.UnsignedSgn);
14938
14939 /* ...... "SPN1854_TransmissionMode3" (44|2, standard signal, unsigned int, little endian) */
14940 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14941 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14942 CAN_Sgn.UnsignedSgn &= 0x00000003;
14943 L4_MABX_B.SFunction1_o17 = ((real_T) CAN_Sgn.UnsignedSgn);
14944
14945 /* ...... "SPN1855_TransmissionMode4" (46|2, standard signal, unsigned int, little endian) */
14946 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14947 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14948 CAN_Sgn.UnsignedSgn &= 0x00000003;
14949 L4_MABX_B.SFunction1_o18 = ((real_T) CAN_Sgn.UnsignedSgn);
14950
14951 /* ...... "SPN7695_TransAutoNeutralRequest" (48|2, standard signal, unsigned int, little endian) */
14952 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14953 CAN_Sgn.UnsignedSgn &= 0x00000003;
14954 L4_MABX_B.SFunction1_o19 = ((real_T) CAN_Sgn.UnsignedSgn);
14955
14956 /* ...... "SPN4255_TransRequestedLaunchGear" (50|4, standard signal, unsigned int, little endian) */
14957 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14958 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14959 CAN_Sgn.UnsignedSgn &= 0x0000000F;
14960 L4_MABX_B.SFunction1_o20 = ((real_T) CAN_Sgn.UnsignedSgn);
14961
14962 /* ...... "SPN2985_TransShiftSelDispModeSw" (54|2, standard signal, unsigned int, little endian) */
14963 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14964 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14965 CAN_Sgn.UnsignedSgn &= 0x00000003;
14966 L4_MABX_B.SFunction1_o21 = ((real_T) CAN_Sgn.UnsignedSgn);
14967
14968 /* ...... "SPN4246_TransmissionMode5" (56|2, standard signal, unsigned int, little endian) */
14969 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14970 CAN_Sgn.UnsignedSgn &= 0x00000003;
14971 L4_MABX_B.SFunction1_o22 = ((real_T) CAN_Sgn.UnsignedSgn);
14972
14973 /* ...... "SPN4247_TransmissionMode6" (58|2, standard signal, unsigned int, little endian) */
14974 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14975 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14976 CAN_Sgn.UnsignedSgn &= 0x00000003;
14977 L4_MABX_B.SFunction1_o23 = ((real_T) CAN_Sgn.UnsignedSgn);
14978
14979 /* ...... "SPN4248_TransmissionMode7" (60|2, standard signal, unsigned int, little endian) */
14980 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14981 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14982 CAN_Sgn.UnsignedSgn &= 0x00000003;
14983 L4_MABX_B.SFunction1_o24 = ((real_T) CAN_Sgn.UnsignedSgn);
14984
14985 /* ...... "SPN4249_TransmissionMode8" (62|2, standard signal, unsigned int, little endian) */
14986 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14987 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14988 CAN_Sgn.UnsignedSgn &= 0x00000003;
14989 L4_MABX_B.SFunction1_o25 = ((real_T) CAN_Sgn.UnsignedSgn);
14990 }
14991 }
14992 } else {
14993 /* set RX status to 0 because no new message has arrived */
14994 L4_MABX_B.SFunction1_o26 = 0.0;
14995 }
14996 }
14997 }
14998
14999 /* End of Constant: '<S450>/Constant' */
15000 /* End of Outputs for SubSystem: '<S635>/TC1_03_05' */
15001
15002 /* Outputs for Atomic SubSystem: '<S834>/CAN_TX_50ms' */
15003
15004 /* RateTransition: '<S1039>/TmpRTBAtCCVS1_E3Inport1' */
15005 if (L4_MABX_M->Timing.RateInteraction.TID0_2 == 1) {
15006 L4_MABX_B.TwoSpeedAxleSwitch = L4_MABX_B.SFunction1_o1_jau;
15007 L4_MABX_B.ParkingBrakeSwitch = L4_MABX_B.SFunction1_o2_ka;
15008 L4_MABX_B.CruiseCtrlPauseSwitch = L4_MABX_B.SFunction1_o3_ei;
15009 L4_MABX_B.ParkBrakeReleaseInhibitRq = L4_MABX_B.SFunction1_o4_it;
15010 L4_MABX_B.WheelBasedVehicleSpeed_i = WheelBasedVehicleSpeed;
15011 L4_MABX_B.CruiseCtrlActive = L4_MABX_B.SFunction1_o6_mz;
15012 L4_MABX_B.CruiseCtrlEnableSwitch_e = L4_MABX_B.SFunction1_o7_iy;
15013 L4_MABX_B.BrakeSwitch_j = BrakeSwitch;
15014 L4_MABX_B.ClutchSwitch = L4_MABX_B.SFunction1_o9_m;
15015 L4_MABX_B.CruiseCtrlSetSwitch = L4_MABX_B.SFunction1_o10_mc;
15016 L4_MABX_B.CruiseCtrlCoastSwitch = L4_MABX_B.SFunction1_o11_e2;
15017 L4_MABX_B.CruiseCtrlResumeSwitch = L4_MABX_B.SFunction1_o12_l;
15018 L4_MABX_B.CruiseCtrlAccelerateSwitch = L4_MABX_B.SFunction1_o13_ow;
15019 L4_MABX_B.CruiseCtrlSetSpeed = L4_MABX_B.SFunction1_o14_h;
15020 L4_MABX_B.PTOGovernorState = L4_MABX_B.SFunction1_o15_g;
15021 L4_MABX_B.CruiseCtrlStates = L4_MABX_B.SFunction1_o16_bx;
15022 L4_MABX_B.EngIdleIncrementSwitch = L4_MABX_B.SFunction1_o17_d;
15023 L4_MABX_B.EngIdleDecrementSwitch = L4_MABX_B.SFunction1_o18_a;
15024 L4_MABX_B.EngTestModeSwitch = L4_MABX_B.SFunction1_o19_p;
15025 L4_MABX_B.EngShutdownOverrideSwitch = L4_MABX_B.SFunction1_o20_a;
15026 L4_MABX_B.SPN681_TransGearShiftInhibitReq = L4_MABX_B.SFunction1_o1_cr;
15027 L4_MABX_B.SPN682_TransTrqConvLockupDisReq = L4_MABX_B.SFunction1_o2_ir;
15028 L4_MABX_B.SPN683_DisengageDrivelineReq = L4_MABX_B.SFunction1_o3_b4;
15029 L4_MABX_B.SPN4242_TransRevGearShiftInhibR = L4_MABX_B.SFunction1_o4_on;
15030 L4_MABX_B.SPN684_RequestedPercClutchSlip = L4_MABX_B.SFunction1_o5_f;
15031 L4_MABX_B.SPN525_TransRequestedGear = L4_MABX_B.SFunction1_o6_l;
15032 L4_MABX_B.SPN685_DisengageDiffLockRqFrAx1 = L4_MABX_B.SFunction1_o7_d;
15033 L4_MABX_B.SPN686_DisengageDiffLockRqFrAx2 = L4_MABX_B.SFunction1_o8_g;
15034 L4_MABX_B.SPN687_DisengageDiffLockRqRrAx1 = L4_MABX_B.SFunction1_o9_l;
15035 L4_MABX_B.SPN688_DisengageDiffLockRqRrAx2 = L4_MABX_B.SFunction1_o10_d;
15036 L4_MABX_B.SPN689_DisengageDiffLockRqC = L4_MABX_B.SFunction1_o11;
15037 L4_MABX_B.SPN690_DisengageDiffLockRqCF = L4_MABX_B.SFunction1_o12;
15038 L4_MABX_B.SPN691_DisengageDiffLockRqCR = L4_MABX_B.SFunction1_o13;
15039 L4_MABX_B.SPN5762_TransLoadRedInhibitRq = L4_MABX_B.SFunction1_o14;
15040 L4_MABX_B.SPN1852_TransmissionMode1 = L4_MABX_B.SFunction1_o15;
15041 L4_MABX_B.SPN1853_TransmissionMode2 = L4_MABX_B.SFunction1_o16;
15042 L4_MABX_B.SPN1854_TransmissionMode3 = L4_MABX_B.SFunction1_o17;
15043 L4_MABX_B.SPN1855_TransmissionMode4 = L4_MABX_B.SFunction1_o18;
15044 L4_MABX_B.SPN7695_TransAutoNeutralRequest = L4_MABX_B.SFunction1_o19;
15045 L4_MABX_B.SPN4255_TransRequestedLaunchGea = L4_MABX_B.SFunction1_o20;
15046 L4_MABX_B.SPN2985_TransShiftSelDispModeSw = L4_MABX_B.SFunction1_o21;
15047 L4_MABX_B.SPN4246_TransmissionMode5 = L4_MABX_B.SFunction1_o22;
15048 L4_MABX_B.SPN4247_TransmissionMode6 = L4_MABX_B.SFunction1_o23;
15049 L4_MABX_B.SPN4248_TransmissionMode7 = L4_MABX_B.SFunction1_o24;
15050 L4_MABX_B.SPN4249_TransmissionMode8 = L4_MABX_B.SFunction1_o25;
15051 }
15052
15053 /* End of Outputs for SubSystem: '<S834>/CAN_TX_50ms' */
15054
15055 /* Outputs for Enabled SubSystem: '<S633>/SystemTime_01' incorporates:
15056 * EnablePort: '<S634>/Enable'
15057 */
15058 /* Constant: '<S449>/Constant' */
15059 if (L4_MABX_P.Constant_Value_it > 0.0) {
15060 /* S-Function (rti_commonblock): '<S634>/S-Function1' */
15061 /* This comment workarounds a code generation problem */
15062
15063 /* dSPACE RTICAN RX Message Block: "SystemTime_01" Id:233836544 */
15064 {
15065 UInt32 *CAN_Msg;
15066 static dsfloat time_old = 0.0;
15067
15068 /* Read status and timestamp info (previous message) */
15069 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].timestamp !=
15070 time_old) {
15071 /* ... save timestamp info for the calculation of the RX status
15072 during the consecutive sample hit*/
15073 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].
15074 timestamp;
15075
15076 /* ... set the processed flag to one */
15077 L4_MABX_B.SFunction1_o5_l = 1.0;
15078 L4_MABX_B.SFunction1_o6_o = (real_T)
15079 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].timestamp;
15080 L4_MABX_B.SFunction1_o7_c = (real_T)
15081 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].deltatime;
15082 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].data;
15083
15084 /* Decode CAN message */
15085 {
15086 {
15087 rtican_Signal_t CAN_Sgn;
15088
15089 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15090 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15091 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15092 L4_MABX_B.SFunction1_o1_bc = ((real_T) CAN_Sgn.UnsignedSgn);
15093
15094 /* ...... "Source" (8|4, standard signal, unsigned int, little endian) */
15095 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15096 CAN_Sgn.UnsignedSgn &= 0x0000000F;
15097 L4_MABX_B.SFunction1_o2_oc = ((real_T) CAN_Sgn.UnsignedSgn);
15098
15099 /* ...... "Date" (16|16, standard signal, unsigned int, little endian) */
15100 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
15101 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
15102 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
15103 L4_MABX_B.SFunction1_o3_gr = ((real_T) CAN_Sgn.UnsignedSgn);
15104
15105 /* ...... "Time" (32|32, standard signal, unsigned int, little endian) */
15106 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
15107 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
15108 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
15109 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
15110 L4_MABX_B.SFunction1_o4_og = 0.0001 * ( ((real_T)
15111 CAN_Sgn.UnsignedSgn) );
15112 }
15113 }
15114 } else {
15115 /* set RX status to 0 because no new message has arrived */
15116 L4_MABX_B.SFunction1_o5_l = 0.0;
15117 }
15118 }
15119 }
15120
15121 /* End of Constant: '<S449>/Constant' */
15122 /* End of Outputs for SubSystem: '<S633>/SystemTime_01' */
15123
15124 /* DataTypeConversion: '<S633>/Data Type Conversion8' */
15125 L4_MABX_B.RX_status_d = (L4_MABX_B.SFunction1_o5_l != 0.0);
15126
15127 /* Logic: '<S1053>/Operator' incorporates:
15128 * Constant: '<S1051>/Constant'
15129 */
15130 L4_MABX_B.Operator_d3 = (L4_MABX_P.Constant_Value_hp && L4_MABX_B.RX_status_d);
15131
15132 /* DataTypeConversion: '<S1053>/DataType' */
15133 L4_MABX_B.DataType_ham = L4_MABX_B.Operator_d3;
15134
15135 /* Outputs for Enabled SubSystem: '<S1052>/Std_SystemTime_01' incorporates:
15136 * EnablePort: '<S1054>/Enable'
15137 */
15138 if (L4_MABX_B.DataType_ham) {
15139 /* S-Function (rti_commonblock): '<S1054>/S-Function1' incorporates:
15140 * Constant: '<S1052>/Constant'
15141 * Constant: '<S1052>/Constant1'
15142 */
15143 /* This comment workarounds a code generation problem */
15144
15145 /* dSPACE RTICAN TX Message Block: "Std_SystemTime_01" Id:5 */
15146 {
15147 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15148 0x00 };
15149
15150 Float32 delayTime = 0.0;
15151
15152 /* link this pointer to CAN_Msg for use in initialize_io_units() */
15153 CANTP1_PTR_M3_C2_STD_0x5 = &(CAN_Msg[0]);
15154
15155 /* ... perform loop-back if required */
15156 if (L4_MABX_P.Constant1_Value_ce > 0.5) {
15157 /* ... updating the used tx-clientbuffer */
15158 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_STD_0X5->module,
15159 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->queue );
15160
15161 /* ... Read status and timestamp info perform loop-back (previous message) */
15162 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_STD_0X5,
15163 8, // datalen
15164 &(CAN_Msg[0]),
15165 CANTP1_RX_SPMSG_M3_C2_STD);
15166
15167 /* Convert timestamp */
15168 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed) {
15169 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp =
15170 rtk_dsts_time_to_simtime_convert
15171 (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp);
15172 }
15173 } else {
15174 /* ... Read status and timestamp info (previous message) */
15175 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_STD_0X5);
15176
15177 /* Convert timestamp */
15178 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed) {
15179 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp =
15180 rtk_dsts_time_to_simtime_convert
15181 (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp);
15182 }
15183 }
15184
15185 /* Messages with timestamp zero have been received in pause/stop state
15186 and must not be handled.
15187 */
15188 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp > 0.0) {
15189 L4_MABX_B.SFunction1_o1_d = (real_T)
15190 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed;
15191 L4_MABX_B.SFunction1_o2_c = (real_T)
15192 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp;
15193 L4_MABX_B.SFunction1_o3 = (real_T)
15194 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->deltatime;
15195 L4_MABX_B.SFunction1_o4 = (real_T)
15196 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->delaytime;
15197 }
15198
15199 /* ... Encode Simulink signals of TX and RM blocks*/
15200 {
15201 rtican_Signal_t CAN_Sgn;
15202 UInt32 i;
15203
15204 /* Initialize the static message data to zero */
15205 for (i=0; i<8; i++ )
15206 CAN_Msg[i] = 0;
15207
15208 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15209 /* Add or substract 0.5 in order to round to nearest integer */
15210 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o1_bc ) + 0.5);
15211 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15212 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15213
15214 /* ...... "Source" (8|4, standard signal, unsigned int, little endian) */
15215 /* Add or substract 0.5 in order to round to nearest integer */
15216 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o2_oc ) + 0.5);
15217 CAN_Sgn.UnsignedSgn &= 0x0000000F;
15218 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15219
15220 /* ...... "Date" (16|16, standard signal, unsigned int, little endian) */
15221 /* Add or substract 0.5 in order to round to nearest integer */
15222 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o3_gr ) + 0.5);
15223 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
15224 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15225 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
15226
15227 /* ...... "Time" (32|32, standard signal, unsigned int, little endian) */
15228 /* Add or substract 0.5 in order to round to nearest integer */
15229 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o4_og - ( 0 ) ) /
15230 0.0001 + 0.5);
15231 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15232 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
15233 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte2;
15234 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte3;
15235 }
15236
15237 delayTime = (Float32) L4_MABX_P.Constant_Value_nw / (2000);
15238
15239 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15240 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X5], 8, &(CAN_Msg[0]),
15241 delayTime);
15242 }
15243 }
15244
15245 /* End of Outputs for SubSystem: '<S1052>/Std_SystemTime_01' */
15246
15247 /* Constant: '<S1043>/Byte1' */
15248 L4_MABX_B.VectorConcatenate[0] = L4_MABX_P.Byte1_Value_ou;
15249
15250 /* Constant: '<S1043>/Byte2' */
15251 L4_MABX_B.VectorConcatenate[1] = L4_MABX_P.Byte2_Value_m;
15252
15253 /* Constant: '<S1043>/Byte3' */
15254 L4_MABX_B.VectorConcatenate[2] = L4_MABX_P.Byte3_Value_l;
15255
15256 /* Constant: '<S1043>/Byte4' */
15257 L4_MABX_B.VectorConcatenate[3] = L4_MABX_P.Byte4_Value_d;
15258
15259 /* Constant: '<S1043>/Byte5' */
15260 L4_MABX_B.VectorConcatenate[4] = L4_MABX_P.Byte5_Value_f;
15261
15262 /* Constant: '<S1043>/Byte6' */
15263 L4_MABX_B.VectorConcatenate[5] = L4_MABX_P.Byte6_Value_m;
15264
15265 /* Constant: '<S1043>/Byte7' */
15266 L4_MABX_B.VectorConcatenate[6] = L4_MABX_P.Byte7_Value_k;
15267
15268 /* Constant: '<S1043>/Byte8' */
15269 L4_MABX_B.VectorConcatenate[7] = L4_MABX_P.Byte8_Value_c;
15270
15271 /* DataTypeConversion: '<S1047>/Data Type Conversion' */
15272 for (i = 0; i < 8; i++) {
15273 L4_MABX_B.DataTypeConversion[i] = L4_MABX_B.VectorConcatenate[i];
15274 }
15275
15276 /* End of DataTypeConversion: '<S1047>/Data Type Conversion' */
15277
15278 /* UnitDelay: '<S844>/Unit Delay2' */
15279 L4_MABX_B.UnitDelay2 = L4_MABX_DW.UnitDelay2_DSTATE;
15280
15281 /* Outputs for Triggered SubSystem: '<S1047>/CAN_TYPE1_TX_M1_C1' incorporates:
15282 * TriggerPort: '<S1049>/Trigger'
15283 */
15284 zcEvent = (L4_MABX_B.UnitDelay2 &&
15285 (L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_c != POS_ZCSIG));
15286 if (zcEvent) {
15287 /* S-Function (rti_commonblock): '<S1049>/S-Function1' */
15288 /* This comment workarounds a code generation problem */
15289
15290 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418184965 */
15291 {
15292 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
15293
15294 Float32 delayTime = 0.0;
15295
15296 /* ... Read status and timestamp info (previous message) */
15297 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]);
15298
15299 /* Convert timestamp */
15300 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->processed) {
15301 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp =
15302 rtk_dsts_time_to_simtime_convert
15303 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp);
15304 }
15305
15306 /* Messages with timestamp zero have been received in pause/stop state
15307 and must not be handled.
15308 */
15309 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp > 0.0) {
15310 L4_MABX_B.SFunction1_o1_k = (real_T)
15311 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->processed;
15312 L4_MABX_B.SFunction1_o2_e0 = (real_T)
15313 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp;
15314 L4_MABX_B.SFunction1_o3_o = (real_T)
15315 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->deltatime;
15316 L4_MABX_B.SFunction1_o4_kc = (real_T)
15317 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->delaytime;
15318 }
15319
15320 /* ... Encode Simulink signals of TX and RM blocks*/
15321 {
15322 rtican_Signal_t CAN_Sgn;
15323
15324 /* ...... "Byte1" (0|8, standard signal, unsigned int, little endian) */
15325 /* Add or substract 0.5 in order to round to nearest integer */
15326 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[0] ) +
15327 0.5);
15328 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15329 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15330
15331 /* ...... "Byte2" (8|8, standard signal, unsigned int, little endian) */
15332 /* Add or substract 0.5 in order to round to nearest integer */
15333 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[1] ) +
15334 0.5);
15335 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15336 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15337
15338 /* ...... "Byte3" (16|8, standard signal, unsigned int, little endian) */
15339 /* Add or substract 0.5 in order to round to nearest integer */
15340 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[2] ) +
15341 0.5);
15342 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15343 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15344
15345 /* ...... "Byte4" (24|8, standard signal, unsigned int, little endian) */
15346 /* Add or substract 0.5 in order to round to nearest integer */
15347 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[3] ) +
15348 0.5);
15349 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15350 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
15351
15352 /* ...... "Byte5" (32|8, standard signal, unsigned int, little endian) */
15353 /* Add or substract 0.5 in order to round to nearest integer */
15354 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[4] ) +
15355 0.5);
15356 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15357 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15358
15359 /* ...... "Byte6" (40|8, standard signal, unsigned int, little endian) */
15360 /* Add or substract 0.5 in order to round to nearest integer */
15361 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[5] ) +
15362 0.5);
15363 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15364 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
15365
15366 /* ...... "Byte7" (48|8, standard signal, unsigned int, little endian) */
15367 /* Add or substract 0.5 in order to round to nearest integer */
15368 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[6] ) +
15369 0.5);
15370 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15371 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
15372
15373 /* ...... "Byte8" (56|8, standard signal, unsigned int, little endian) */
15374 /* Add or substract 0.5 in order to round to nearest integer */
15375 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[7] ) +
15376 0.5);
15377 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15378 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
15379 }
15380
15381 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15382 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05], 8,
15383 &(CAN_Msg[0]), delayTime);
15384 }
15385 }
15386
15387 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_c = L4_MABX_B.UnitDelay2;
15388
15389 /* End of Outputs for SubSystem: '<S1047>/CAN_TYPE1_TX_M1_C1' */
15390
15391 /* UnitDelay: '<S844>/Unit Delay1' */
15392 L4_MABX_B.UnitDelay1_d = L4_MABX_DW.UnitDelay1_DSTATE_h;
15393
15394 /* MultiPortSwitch: '<S844>/Multiport Switch' incorporates:
15395 * Constant: '<S1045>/Byte1'
15396 * Constant: '<S1045>/Byte2'
15397 * Constant: '<S1045>/Byte3'
15398 * Constant: '<S1045>/Byte4'
15399 * Constant: '<S1045>/Byte5'
15400 * Constant: '<S1045>/Byte6'
15401 * Constant: '<S1045>/Byte7'
15402 * Constant: '<S1045>/Byte8'
15403 * Constant: '<S1046>/Byte1'
15404 * Constant: '<S1046>/Byte2'
15405 * Constant: '<S1046>/Byte3'
15406 * Constant: '<S1046>/Byte4'
15407 * Constant: '<S1046>/Byte5'
15408 * Constant: '<S1046>/Byte6'
15409 * Constant: '<S1046>/Byte7'
15410 * Constant: '<S1046>/Byte8'
15411 */
15412 if (L4_MABX_B.UnitDelay1_d == 1) {
15413 L4_MABX_B.VectorConcatenate_m[7] = L4_MABX_P.Byte8_Value_m;
15414 L4_MABX_B.VectorConcatenate_m[6] = L4_MABX_P.Byte7_Value_d;
15415 L4_MABX_B.VectorConcatenate_m[5] = L4_MABX_P.Byte6_Value_j;
15416 L4_MABX_B.VectorConcatenate_m[4] = L4_MABX_P.Byte5_Value_c;
15417 L4_MABX_B.VectorConcatenate_m[3] = L4_MABX_P.Byte4_Value_f;
15418 L4_MABX_B.VectorConcatenate_m[2] = L4_MABX_P.Byte3_Value_c;
15419 L4_MABX_B.VectorConcatenate_m[1] = L4_MABX_P.Byte2_Value_o;
15420 L4_MABX_B.VectorConcatenate_m[0] = L4_MABX_P.Byte1_Value_o;
15421 for (i = 0; i < 8; i++) {
15422 L4_MABX_B.MultiportSwitch_fm[i] = L4_MABX_B.VectorConcatenate_m[i];
15423 }
15424 } else {
15425 L4_MABX_B.VectorConcatenate_k[7] = L4_MABX_P.Byte8_Value;
15426 L4_MABX_B.VectorConcatenate_k[6] = L4_MABX_P.Byte7_Value;
15427 L4_MABX_B.VectorConcatenate_k[5] = L4_MABX_P.Byte6_Value;
15428 L4_MABX_B.VectorConcatenate_k[4] = L4_MABX_P.Byte5_Value;
15429 L4_MABX_B.VectorConcatenate_k[3] = L4_MABX_P.Byte4_Value;
15430 L4_MABX_B.VectorConcatenate_k[2] = L4_MABX_P.Byte3_Value;
15431 L4_MABX_B.VectorConcatenate_k[1] = L4_MABX_P.Byte2_Value;
15432 L4_MABX_B.VectorConcatenate_k[0] = L4_MABX_P.Byte1_Value;
15433 for (i = 0; i < 8; i++) {
15434 L4_MABX_B.MultiportSwitch_fm[i] = L4_MABX_B.VectorConcatenate_k[i];
15435 }
15436 }
15437
15438 /* End of MultiPortSwitch: '<S844>/Multiport Switch' */
15439
15440 /* DataTypeConversion: '<S1048>/Data Type Conversion' */
15441 for (i = 0; i < 8; i++) {
15442 L4_MABX_B.DataTypeConversion_l[i] = L4_MABX_B.MultiportSwitch_fm[i];
15443 }
15444
15445 /* End of DataTypeConversion: '<S1048>/Data Type Conversion' */
15446
15447 /* UnitDelay: '<S844>/Unit Delay3' */
15448 L4_MABX_B.UnitDelay3 = L4_MABX_DW.UnitDelay3_DSTATE;
15449
15450 /* Outputs for Triggered SubSystem: '<S1048>/CAN_TYPE1_TX_M1_C1' incorporates:
15451 * TriggerPort: '<S1050>/Trigger'
15452 */
15453 zcEvent = (L4_MABX_B.UnitDelay3 &&
15454 (L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE != POS_ZCSIG));
15455 if (zcEvent) {
15456 /* S-Function (rti_commonblock): '<S1050>/S-Function1' */
15457 /* This comment workarounds a code generation problem */
15458
15459 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418119429 */
15460 {
15461 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
15462
15463 Float32 delayTime = 0.0;
15464
15465 /* ... Read status and timestamp info (previous message) */
15466 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]);
15467
15468 /* Convert timestamp */
15469 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->processed) {
15470 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp =
15471 rtk_dsts_time_to_simtime_convert
15472 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp);
15473 }
15474
15475 /* Messages with timestamp zero have been received in pause/stop state
15476 and must not be handled.
15477 */
15478 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp > 0.0) {
15479 L4_MABX_B.SFunction1_o1_i = (real_T)
15480 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->processed;
15481 L4_MABX_B.SFunction1_o2_h = (real_T)
15482 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp;
15483 L4_MABX_B.SFunction1_o3_g = (real_T)
15484 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->deltatime;
15485 L4_MABX_B.SFunction1_o4_k = (real_T)
15486 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->delaytime;
15487 }
15488
15489 /* ... Encode Simulink signals of TX and RM blocks*/
15490 {
15491 rtican_Signal_t CAN_Sgn;
15492
15493 /* ...... "Byte1" (0|8, standard signal, unsigned int, little endian) */
15494 /* Add or substract 0.5 in order to round to nearest integer */
15495 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_l[0] ) +
15496 0.5);
15497 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15498 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15499
15500 /* ...... "Byte2" (8|8, standard signal, unsigned int, little endian) */
15501 /* Add or substract 0.5 in order to round to nearest integer */
15502 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_l[1] ) +
15503 0.5);
15504 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15505 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15506
15507 /* ...... "Byte3" (16|8, standard signal, unsigned int, little endian) */
15508 /* Add or substract 0.5 in order to round to nearest integer */
15509 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_l[2] ) +
15510 0.5);
15511 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15512 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15513
15514 /* ...... "Byte4" (24|8, standard signal, unsigned int, little endian) */
15515 /* Add or substract 0.5 in order to round to nearest integer */
15516 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_l[3] ) +
15517 0.5);
15518 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15519 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
15520
15521 /* ...... "Byte5" (32|8, standard signal, unsigned int, little endian) */
15522 /* Add or substract 0.5 in order to round to nearest integer */
15523 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_l[4] ) +
15524 0.5);
15525 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15526 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15527
15528 /* ...... "Byte6" (40|8, standard signal, unsigned int, little endian) */
15529 /* Add or substract 0.5 in order to round to nearest integer */
15530 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_l[5] ) +
15531 0.5);
15532 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15533 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
15534
15535 /* ...... "Byte7" (48|8, standard signal, unsigned int, little endian) */
15536 /* Add or substract 0.5 in order to round to nearest integer */
15537 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_l[6] ) +
15538 0.5);
15539 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15540 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
15541
15542 /* ...... "Byte8" (56|8, standard signal, unsigned int, little endian) */
15543 /* Add or substract 0.5 in order to round to nearest integer */
15544 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_l[7] ) +
15545 0.5);
15546 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15547 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
15548 }
15549
15550 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15551 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05], 8,
15552 &(CAN_Msg[0]), delayTime);
15553 }
15554 }
15555
15556 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE = L4_MABX_B.UnitDelay3;
15557
15558 /* End of Outputs for SubSystem: '<S1048>/CAN_TYPE1_TX_M1_C1' */
15559
15560 /* Chart: '<S844>/Chart' incorporates:
15561 * Constant: '<S844>/Constant1'
15562 */
15563 if (L4_MABX_DW.temporalCounter_i1_j < 255U) {
15564 L4_MABX_DW.temporalCounter_i1_j++;
15565 }
15566
15567 /* Gateway: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15568 /* During: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15569 if (L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW == 0U) {
15570 /* Entry: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15571 L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW = 1U;
15572
15573 /* Entry Internal: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15574 /* Transition: '<S1044>:4' */
15575 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_Init_i;
15576
15577 /* Entry 'Init': '<S1044>:1' */
15578 L4_MABX_B.State = 0U;
15579 L4_MABX_B.enTPCM = false;
15580 L4_MABX_B.enTPDT = false;
15581 L4_MABX_B.TPCM_ts_Prev = L4_MABX_B.SFunction1_o2_e0;
15582 L4_MABX_B.TPDT_ts_Prev = L4_MABX_B.SFunction1_o2_h;
15583 L4_MABX_B.TPDT_count = 0U;
15584 } else {
15585 switch (L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf) {
15586 case L4_MABX_IN_CheckPacketCount:
15587 L4_MABX_B.State = 6U;
15588
15589 /* During 'CheckPacketCount': '<S1044>:11' */
15590 if (L4_MABX_B.TPDT_count <= L4_MABX_P.Constant1_Value_f1) {
15591 /* Transition: '<S1044>:18' */
15592 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPDT;
15593 L4_MABX_DW.temporalCounter_i1_j = 0U;
15594
15595 /* Entry 'SendTPDT': '<S1044>:6' */
15596 L4_MABX_B.State = 4U;
15597 L4_MABX_B.enTPDT = true;
15598 } else {
15599 /* Transition: '<S1044>:19' */
15600 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf =
15601 L4_MABX_IN_WaitForNextPeriod;
15602 L4_MABX_DW.temporalCounter_i1_j = 0U;
15603
15604 /* Entry 'WaitForNextPeriod': '<S1044>:17' */
15605 L4_MABX_B.State = 7U;
15606 }
15607 break;
15608
15609 case L4_MABX_IN_Init_i:
15610 /* During 'Init': '<S1044>:1' */
15611 /* Transition: '<S1044>:9' */
15612 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_StartMsg;
15613
15614 /* Entry 'StartMsg': '<S1044>:30' */
15615 L4_MABX_B.State = 1U;
15616 L4_MABX_B.TPDT_count = 1U;
15617 break;
15618
15619 case L4_MABX_IN_InterframeDelay:
15620 L4_MABX_B.State = 3U;
15621
15622 /* During 'InterframeDelay': '<S1044>:7' */
15623 if (L4_MABX_DW.temporalCounter_i1_j >= 5U) {
15624 /* Transition: '<S1044>:10' */
15625 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPDT;
15626 L4_MABX_DW.temporalCounter_i1_j = 0U;
15627
15628 /* Entry 'SendTPDT': '<S1044>:6' */
15629 L4_MABX_B.State = 4U;
15630 L4_MABX_B.enTPDT = true;
15631 }
15632 break;
15633
15634 case L4_MABX_IN_InterframeDelay1:
15635 L4_MABX_B.State = 5U;
15636
15637 /* During 'InterframeDelay1': '<S1044>:12' */
15638 if (L4_MABX_DW.temporalCounter_i1_j >= 5U) {
15639 /* Transition: '<S1044>:14' */
15640 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_CheckPacketCount;
15641
15642 /* Entry 'CheckPacketCount': '<S1044>:11' */
15643 L4_MABX_B.State = 6U;
15644 i = (int32_T)(L4_MABX_B.TPDT_count + 1U);
15645 if ((uint32_T)i > 255U) {
15646 i = 255;
15647 }
15648
15649 L4_MABX_B.TPDT_count = (uint8_T)i;
15650 }
15651 break;
15652
15653 case L4_MABX_IN_SendTPCM:
15654 L4_MABX_B.State = 2U;
15655
15656 /* During 'SendTPCM': '<S1044>:5' */
15657 if (L4_MABX_DW.temporalCounter_i1_j >= 1U) {
15658 /* Transition: '<S1044>:8' */
15659 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_InterframeDelay;
15660 L4_MABX_DW.temporalCounter_i1_j = 0U;
15661
15662 /* Entry 'InterframeDelay': '<S1044>:7' */
15663 L4_MABX_B.State = 3U;
15664 L4_MABX_B.enTPCM = false;
15665 L4_MABX_B.TPCM_ts_Prev = L4_MABX_B.SFunction1_o2_e0;
15666 }
15667 break;
15668
15669 case L4_MABX_IN_SendTPDT:
15670 L4_MABX_B.State = 4U;
15671
15672 /* During 'SendTPDT': '<S1044>:6' */
15673 if (L4_MABX_DW.temporalCounter_i1_j >= 1U) {
15674 /* Transition: '<S1044>:13' */
15675 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_InterframeDelay1;
15676 L4_MABX_DW.temporalCounter_i1_j = 0U;
15677
15678 /* Entry 'InterframeDelay1': '<S1044>:12' */
15679 L4_MABX_B.State = 5U;
15680 L4_MABX_B.enTPDT = false;
15681 L4_MABX_B.TPDT_ts_Prev = L4_MABX_B.SFunction1_o2_h;
15682 }
15683 break;
15684
15685 case L4_MABX_IN_StartMsg:
15686 /* During 'StartMsg': '<S1044>:30' */
15687 /* Transition: '<S1044>:31' */
15688 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPCM;
15689 L4_MABX_DW.temporalCounter_i1_j = 0U;
15690
15691 /* Entry 'SendTPCM': '<S1044>:5' */
15692 L4_MABX_B.State = 2U;
15693 L4_MABX_B.enTPCM = true;
15694 break;
15695
15696 default:
15697 L4_MABX_B.State = 7U;
15698
15699 /* During 'WaitForNextPeriod': '<S1044>:17' */
15700 if (L4_MABX_DW.temporalCounter_i1_j >= 185U) {
15701 /* Transition: '<S1044>:20' */
15702 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_StartMsg;
15703
15704 /* Entry 'StartMsg': '<S1044>:30' */
15705 L4_MABX_B.State = 1U;
15706 L4_MABX_B.TPDT_count = 1U;
15707 }
15708 break;
15709 }
15710 }
15711
15712 /* End of Chart: '<S844>/Chart' */
15713
15714 /* RelationalOperator: '<S1072>/Operator' incorporates:
15715 * Constant: '<S1063>/Constant2'
15716 */
15717 L4_MABX_B.Operator_n1 = (L4_MABX_P.Constant2_Value_e1 == MABX_Mode);
15718
15719 /* S-Function (rti_commonblock): '<S1055>/S-Function1' */
15720 /* This comment workarounds a code generation problem */
15721
15722 /* write output state value to digital output channel 4 on port 1 */
15723 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH4, (UInt16)
15724 (L4_MABX_B.Operator_n1 << 3));
15725
15726 /* RateTransition: '<S1063>/TmpRTBAtANDInport1' */
15727 if (L4_MABX_M->Timing.RateInteraction.TID0_3 == 1) {
15728 L4_MABX_B.TmpRTBAtANDInport1 = L4_MABX_DW.TmpRTBAtANDInport1_Buffer0;
15729 }
15730
15731 /* End of RateTransition: '<S1063>/TmpRTBAtANDInport1' */
15732
15733 /* Logic: '<S1063>/AND' */
15734 L4_MABX_B.AND = ((L4_MABX_B.TmpRTBAtANDInport1 != 0.0) && AutonomousEnabled);
15735
15736 /* Logic: '<S1063>/OR' */
15737 L4_MABX_B.OR = (AutonomousOutputEnabled || L4_MABX_B.AND);
15738
15739 /* S-Function (rti_commonblock): '<S1056>/S-Function1' */
15740 /* This comment workarounds a code generation problem */
15741
15742 /* write output state value to digital output channel 2 on port 1 */
15743 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH2, (UInt16)
15744 (L4_MABX_B.OR << 1));
15745
15746 /* S-Function (rti_commonblock): '<S1057>/S-Function1' */
15747 /* This comment workarounds a code generation problem */
15748
15749 /* write output state value to digital output channel 1 on port 1 */
15750 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH1, (UInt16)
15751 (EnableSw << 0));
15752
15753 /* RelationalOperator: '<S1071>/Operator' incorporates:
15754 * Constant: '<S1063>/Constant3'
15755 */
15756 L4_MABX_B.Operator_fp = (L4_MABX_P.Constant3_Value_gm == SupervisorMode);
15757
15758 /* S-Function (rti_commonblock): '<S1058>/S-Function1' */
15759 /* This comment workarounds a code generation problem */
15760
15761 /* write output state value to digital output channel 3 on port 1 */
15762 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH3, (UInt16)
15763 (L4_MABX_B.Operator_fp << 2));
15764
15765 /* Logic: '<S1061>/Logical Operator' */
15766 L4_MABX_B.LogicalOperator_ju = !AutonomousOutputEnabled;
15767
15768 /* Outputs for Atomic SubSystem: '<S1061>/If_Then_Else4' */
15769
15770 /* Constant: '<S1061>/APTC_PEDAL_A_PWM_FREQ_HZ_APV' */
15771 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_ju,
15772 L4_MABX_B.Pedal_1_pwm_freq_raw_value,
15773 L4_MABX_P.APTC_PEDAL_A_PWM_FREQ_HZ_APV_Va,
15774 &L4_MABX_B.If_Then_Else4);
15775
15776 /* End of Outputs for SubSystem: '<S1061>/If_Then_Else4' */
15777
15778 /* MinMax: '<S835>/MinMax' incorporates:
15779 * Constant: '<S835>/Constant2'
15780 */
15781 DeltaTime = L4_MABX_B.If_Then_Else4.Switch;
15782 PositionFinalLimited = L4_MABX_P.Constant2_Value_i;
15783 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
15784 PositionFinalLimited = DeltaTime;
15785 }
15786
15787 L4_MABX_B.MinMax_o = PositionFinalLimited;
15788
15789 /* End of MinMax: '<S835>/MinMax' */
15790
15791 /* DataTypeConversion: '<S835>/Data Type Conversion1' */
15792 L4_MABX_B.DataTypeConversion1 = L4_MABX_B.MinMax_o;
15793
15794 /* Product: '<S835>/Divide' incorporates:
15795 * Constant: '<S835>/Constant3'
15796 */
15797 L4_MABX_B.Divide_j = L4_MABX_P.Constant3_Value_dn /
15798 L4_MABX_B.DataTypeConversion1;
15799
15800 /* DataTypeConversion: '<S835>/Data Type Conversion5' */
15801 L4_MABX_B.PWMOut_P2C1_Period = L4_MABX_B.Divide_j;
15802
15803 /* Lookup_n-D: '<S1061>/1-D Lookup Table2' */
15804 L4_MABX_B.PedalPWMA_DC_out = look1_binlcapw(L4_MABX_B.If_Then_Else_f.Switch,
15805 L4_MABX_P.uDLookupTable2_bp01Data, L4_MABX_P.uDLookupTable2_tableData, 1U);
15806
15807 /* Outputs for Atomic SubSystem: '<S1061>/If_Then_Else1' */
15808 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_ju,
15809 L4_MABX_B.Pedal_1_pwm_dc_raw_value,
15810 L4_MABX_B.PedalPWMA_DC_out, &L4_MABX_B.If_Then_Else1_l);
15811
15812 /* End of Outputs for SubSystem: '<S1061>/If_Then_Else1' */
15813
15814 /* Gain: '<S835>/Gain1' */
15815 L4_MABX_B.Gain1_j = L4_MABX_P.Gain1_Gain_m * L4_MABX_B.If_Then_Else1_l.Switch;
15816
15817 /* DataTypeConversion: '<S835>/Data Type Conversion6' */
15818 L4_MABX_B.PWMOut_P2C1_DC = L4_MABX_B.Gain1_j;
15819
15820 /* S-Function (rti_commonblock): '<S1059>/S-Function1' */
15821 /* This comment workarounds a code generation problem */
15822
15823 /* write PWM Period and DutyCycle for output channel 1 on port 2 */
15824 dio_tp4_pwm_update(DIO_TP4_1_MODULE_ADDR , 2, 1, (real_T)
15825 L4_MABX_B.PWMOut_P2C1_Period, (real_T)
15826 L4_MABX_B.PWMOut_P2C1_DC);
15827
15828 /* Outputs for Atomic SubSystem: '<S1061>/If_Then_Else5' */
15829
15830 /* Constant: '<S1061>/APTC_PEDAL_B_PWM_FREQ_HZ_APV' */
15831 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_ju,
15832 L4_MABX_B.Pedal_2_pwm_freq_raw_value,
15833 L4_MABX_P.APTC_PEDAL_B_PWM_FREQ_HZ_APV_Va,
15834 &L4_MABX_B.If_Then_Else5);
15835
15836 /* End of Outputs for SubSystem: '<S1061>/If_Then_Else5' */
15837
15838 /* MinMax: '<S835>/MinMax1' incorporates:
15839 * Constant: '<S835>/Constant4'
15840 */
15841 DeltaTime = L4_MABX_B.If_Then_Else5.Switch;
15842 PositionFinalLimited = L4_MABX_P.Constant4_Value_i;
15843 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
15844 PositionFinalLimited = DeltaTime;
15845 }
15846
15847 L4_MABX_B.MinMax1_mi = PositionFinalLimited;
15848
15849 /* End of MinMax: '<S835>/MinMax1' */
15850
15851 /* DataTypeConversion: '<S835>/Data Type Conversion2' */
15852 L4_MABX_B.DataTypeConversion2_f = L4_MABX_B.MinMax1_mi;
15853
15854 /* Product: '<S835>/Divide1' incorporates:
15855 * Constant: '<S835>/Constant1'
15856 */
15857 L4_MABX_B.Divide1 = L4_MABX_P.Constant1_Value_lr /
15858 L4_MABX_B.DataTypeConversion2_f;
15859
15860 /* DataTypeConversion: '<S835>/Data Type Conversion9' */
15861 L4_MABX_B.PWMOut_P2C2_Period = L4_MABX_B.Divide1;
15862
15863 /* Lookup_n-D: '<S1061>/1-D Lookup Table3' */
15864 L4_MABX_B.PedalPWMB_DC_out = look1_binlcapw(L4_MABX_B.If_Then_Else_f.Switch,
15865 L4_MABX_P.uDLookupTable3_bp01Data, L4_MABX_P.uDLookupTable3_tableData, 1U);
15866
15867 /* Outputs for Atomic SubSystem: '<S1061>/If_Then_Else2' */
15868 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_ju,
15869 L4_MABX_B.Pedal_2_pwm_dc_raw_value,
15870 L4_MABX_B.PedalPWMB_DC_out, &L4_MABX_B.If_Then_Else2_i);
15871
15872 /* End of Outputs for SubSystem: '<S1061>/If_Then_Else2' */
15873
15874 /* Gain: '<S835>/Gain' */
15875 L4_MABX_B.Gain_e = L4_MABX_P.Gain_Gain_b * L4_MABX_B.If_Then_Else2_i.Switch;
15876
15877 /* DataTypeConversion: '<S835>/Data Type Conversion10' */
15878 L4_MABX_B.PWMOut_P2C2_DC = L4_MABX_B.Gain_e;
15879
15880 /* S-Function (rti_commonblock): '<S1060>/S-Function1' */
15881 /* This comment workarounds a code generation problem */
15882
15883 /* write PWM Period and DutyCycle for output channel 2 on port 2 */
15884 dio_tp4_pwm_update(DIO_TP4_1_MODULE_ADDR , 2, 2, (real_T)
15885 L4_MABX_B.PWMOut_P2C2_Period, (real_T)
15886 L4_MABX_B.PWMOut_P2C2_DC);
15887
15888 /* S-Function (rti_commonblock): '<S733>/S-Function1' */
15889 /* This comment workarounds a code generation problem */
15890
15891 /* Gain: '<S411>/ShifterControlDC' */
15892 L4_MABX_B.ShiftControlDC = L4_MABX_P.ShifterControlDC_Gain *
15893 L4_MABX_B.SFunction1_o2_e;
15894
15895 /* RelationalOperator: '<S1062>/Relational Operator' incorporates:
15896 * Constant: '<S1062>/Constant'
15897 */
15898 L4_MABX_B.RelationalOperator_g = (L4_MABX_B.ShiftControlDC >=
15899 L4_MABX_P.Constant_Value_lj);
15900
15901 /* RelationalOperator: '<S1062>/Relational Operator1' incorporates:
15902 * Constant: '<S1062>/Constant1'
15903 */
15904 L4_MABX_B.RelationalOperator1_d = (L4_MABX_B.ShiftControlDC <=
15905 L4_MABX_P.Constant1_Value_d);
15906
15907 /* Logic: '<S1062>/Logical Operator' */
15908 L4_MABX_B.LogicalOperator_c = (L4_MABX_B.RelationalOperator_g &&
15909 L4_MABX_B.RelationalOperator1_d);
15910
15911 /* RelationalOperator: '<S1068>/Compare' incorporates:
15912 * Constant: '<S1068>/Constant'
15913 */
15914 L4_MABX_B.Compare_k = (L4_MABX_B.SPN524_TransSelectedGear ==
15915 L4_MABX_P.Constant_Value_ir);
15916
15917 /* RelationalOperator: '<S1069>/Compare' incorporates:
15918 * Constant: '<S1069>/Constant'
15919 */
15920 L4_MABX_B.Compare_g = (L4_MABX_B.SPN523_TransCurrentGear ==
15921 L4_MABX_P.Constant_Value_nm);
15922
15923 /* Logic: '<S1062>/Logical Operator1' */
15924 L4_MABX_B.LogicalOperator1_m = (L4_MABX_B.Compare_k && L4_MABX_B.Compare_g);
15925
15926 /* Outputs for Atomic SubSystem: '<S1062>/If_Then_Else' */
15927
15928 /* Constant: '<S1062>/F_ALLOW_ETC2_FOR_NEUTRAL_OUTPUT_APV' incorporates:
15929 * Constant: '<S1062>/Constant2'
15930 */
15931 L4_MABX_If_Then_Else3(L4_MABX_P.F_ALLOW_ETC2_FOR_NEUTRAL_OUTPUT,
15932 L4_MABX_B.LogicalOperator1_m,
15933 L4_MABX_P.Constant2_Value_lz, &L4_MABX_B.If_Then_Else_pt);
15934
15935 /* End of Outputs for SubSystem: '<S1062>/If_Then_Else' */
15936
15937 /* Logic: '<S1062>/Logical Operator2' */
15938 L4_MABX_B.Neutral = (L4_MABX_B.LogicalOperator_c ||
15939 L4_MABX_B.If_Then_Else_pt.Switch);
15940
15941 /* Logic: '<S835>/Logical Operator' */
15942 L4_MABX_B.LogicalOperator_h = !L4_MABX_B.Neutral;
15943
15944 /* Outputs for Enabled SubSystem: '<S568>/GNSSDOPs_011' incorporates:
15945 * EnablePort: '<S569>/Enable'
15946 */
15947 /* Constant: '<S436>/Constant' */
15948 if (L4_MABX_P.Constant_Value_b > 0.0) {
15949 /* S-Function (rti_commonblock): '<S569>/S-Function1' */
15950 /* This comment workarounds a code generation problem */
15951
15952 /* dSPACE RTICAN RX Message Block: "GNSSDOPs_01" Id:435815168 */
15953 {
15954 UInt32 *CAN_Msg;
15955 static dsfloat time_old = 0.0;
15956
15957 /* Read status and timestamp info (previous message) */
15958 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].timestamp !=
15959 time_old) {
15960 /* ... save timestamp info for the calculation of the RX status
15961 during the consecutive sample hit*/
15962 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].
15963 timestamp;
15964
15965 /* ... set the processed flag to one */
15966 L4_MABX_B.SFunction1_o7_l = 1.0;
15967 L4_MABX_B.SFunction1_o8_k = (real_T)
15968 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].timestamp;
15969 L4_MABX_B.SFunction1_o9_lf = (real_T)
15970 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].deltatime;
15971 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].data;
15972
15973 /* Decode CAN message */
15974 {
15975 {
15976 rtican_Signal_t CAN_Sgn;
15977
15978 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15979 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15980 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15981 L4_MABX_B.SFunction1_o1_mz = ((real_T) CAN_Sgn.UnsignedSgn);
15982
15983 /* ...... "SetMode" (8|3, standard signal, unsigned int, little endian) */
15984 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15985 CAN_Sgn.UnsignedSgn &= 0x00000007;
15986 L4_MABX_B.SFunction1_o2_gm = ((real_T) CAN_Sgn.UnsignedSgn);
15987
15988 /* ...... "OpMode" (11|3, standard signal, unsigned int, little endian) */
15989 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15990 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
15991 CAN_Sgn.UnsignedSgn &= 0x00000007;
15992 L4_MABX_B.SFunction1_o3_ht = ((real_T) CAN_Sgn.UnsignedSgn);
15993
15994 /* ...... "HDOP_" (16|16, standard signal, signed int, little endian) */
15995 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
15996 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
15997 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15998 if (CAN_Sgn.SignedSgn >> 15) {
15999 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16000 }
16001
16002 L4_MABX_B.SFunction1_o4_lr = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16003
16004 /* ...... "VDOP" (32|16, standard signal, signed int, little endian) */
16005 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
16006 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
16007 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16008 if (CAN_Sgn.SignedSgn >> 15) {
16009 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16010 }
16011
16012 L4_MABX_B.SFunction1_o5_o = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16013
16014 /* ...... "TDOP" (48|16, standard signal, signed int, little endian) */
16015 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
16016 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
16017 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16018 if (CAN_Sgn.SignedSgn >> 15) {
16019 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16020 }
16021
16022 L4_MABX_B.SFunction1_o6_e = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16023 }
16024 }
16025 } else {
16026 /* set RX status to 0 because no new message has arrived */
16027 L4_MABX_B.SFunction1_o7_l = 0.0;
16028 }
16029 }
16030 }
16031
16032 /* End of Outputs for SubSystem: '<S568>/GNSSDOPs_011' */
16033
16034 /* DataTypeConversion: '<S568>/Data Type Conversion8' */
16035 L4_MABX_B.RX_status_k = (L4_MABX_B.SFunction1_o7_l != 0.0);
16036
16037 /* Outputs for Enabled SubSystem: '<S568>/GNSSDOPs_1' incorporates:
16038 * EnablePort: '<S570>/Enable'
16039 */
16040 /* Constant: '<S436>/Constant' */
16041 if (L4_MABX_P.Constant_Value_b > 0.0) {
16042 /* S-Function (rti_commonblock): '<S570>/S-Function1' */
16043 /* This comment workarounds a code generation problem */
16044
16045 /* dSPACE RTICAN RX Message Block: "GNSSDOPs_01" Id:435815169 */
16046 {
16047 UInt32 *CAN_Msg;
16048 static dsfloat time_old = 0.0;
16049
16050 /* Read status and timestamp info (previous message) */
16051 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].timestamp !=
16052 time_old) {
16053 /* ... save timestamp info for the calculation of the RX status
16054 during the consecutive sample hit*/
16055 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].
16056 timestamp;
16057
16058 /* ... set the processed flag to one */
16059 L4_MABX_B.SFunction1_o7_m = 1.0;
16060 L4_MABX_B.SFunction1_o8_ik = (real_T)
16061 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].timestamp;
16062 L4_MABX_B.SFunction1_o9_hf = (real_T)
16063 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].deltatime;
16064 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].data;
16065
16066 /* Decode CAN message */
16067 {
16068 {
16069 rtican_Signal_t CAN_Sgn;
16070
16071 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
16072 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16073 CAN_Sgn.UnsignedSgn &= 0x000000FF;
16074 L4_MABX_B.SFunction1_o1_h1 = ((real_T) CAN_Sgn.UnsignedSgn);
16075
16076 /* ...... "SetMode" (8|3, standard signal, unsigned int, little endian) */
16077 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16078 CAN_Sgn.UnsignedSgn &= 0x00000007;
16079 L4_MABX_B.SFunction1_o2_eu = ((real_T) CAN_Sgn.UnsignedSgn);
16080
16081 /* ...... "OpMode" (11|3, standard signal, unsigned int, little endian) */
16082 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16083 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
16084 CAN_Sgn.UnsignedSgn &= 0x00000007;
16085 L4_MABX_B.SFunction1_o3_fe = ((real_T) CAN_Sgn.UnsignedSgn);
16086
16087 /* ...... "HDOP_" (16|16, standard signal, signed int, little endian) */
16088 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
16089 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
16090 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16091 if (CAN_Sgn.SignedSgn >> 15) {
16092 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16093 }
16094
16095 L4_MABX_B.SFunction1_o4_mh = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16096
16097 /* ...... "VDOP" (32|16, standard signal, signed int, little endian) */
16098 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
16099 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
16100 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16101 if (CAN_Sgn.SignedSgn >> 15) {
16102 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16103 }
16104
16105 L4_MABX_B.SFunction1_o5_n = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16106
16107 /* ...... "TDOP" (48|16, standard signal, signed int, little endian) */
16108 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
16109 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
16110 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16111 if (CAN_Sgn.SignedSgn >> 15) {
16112 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16113 }
16114
16115 L4_MABX_B.SFunction1_o6_gg = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16116 }
16117 }
16118 } else {
16119 /* set RX status to 0 because no new message has arrived */
16120 L4_MABX_B.SFunction1_o7_m = 0.0;
16121 }
16122 }
16123 }
16124
16125 /* End of Outputs for SubSystem: '<S568>/GNSSDOPs_1' */
16126
16127 /* Switch: '<S568>/Switch' */
16128 if (L4_MABX_B.RX_status_k) {
16129 L4_MABX_B.HDOP_ = L4_MABX_B.SFunction1_o4_lr;
16130 } else {
16131 L4_MABX_B.HDOP_ = L4_MABX_B.SFunction1_o4_mh;
16132 }
16133
16134 /* Outputs for Atomic SubSystem: '<S65>/Task_20ms' */
16135 /* RateTransition: '<S389>/TmpRTBAtCheckHDOPInport1' */
16136 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
16137 L4_MABX_B.HDOP__f = L4_MABX_B.HDOP_;
16138 L4_MABX_B.FrontAxleSpeed_d = L4_MABX_B.SFunction1_o1_m1;
16139 L4_MABX_B.FrontAxleSpeed_dv = L4_MABX_B.SFunction1_o1_m1;
16140 L4_MABX_B.FrontAxleSpeed_dvq = L4_MABX_B.SFunction1_o1_m1;
16141 L4_MABX_B.TmpRTBAtVehHeadingInport1 = YawRate;
16142 }
16143
16144 /* End of RateTransition: '<S389>/TmpRTBAtCheckHDOPInport1' */
16145 /* End of Outputs for SubSystem: '<S65>/Task_20ms' */
16146
16147 /* Switch: '<S391>/Switch2' incorporates:
16148 * Constant: '<S391>/No Data'
16149 * Switch: '<S391>/Switch6'
16150 * Switch: '<S391>/Switch7'
16151 * Switch: '<S391>/Switch8'
16152 */
16153 if (RTMapsOk) {
16154 /* Gain: '<S391>/m//s_to_km//h' */
16155 L4_MABX_B.ms_to_kmh = L4_MABX_P.ms_to_kmh_Gain *
16156 L4_MABX_B.Decoder_o1.CurrentVelocity;
16157 CurrentVelocity_kph = L4_MABX_B.ms_to_kmh;
16158
16159 /* Gain: '<S391>/for_logging4' */
16160 L4_MABX_B.for_logging4 = L4_MABX_P.for_logging4_Gain *
16161 L4_MABX_B.Decoder_o1.GPS_X;
16162 GPS_X = L4_MABX_B.for_logging4;
16163
16164 /* Gain: '<S391>/for_logging5' */
16165 L4_MABX_B.for_logging5 = L4_MABX_P.for_logging5_Gain *
16166 L4_MABX_B.Decoder_o1.GPS_Y;
16167 GPS_Y = L4_MABX_B.for_logging5;
16168
16169 /* Gain: '<S391>/for_logging6' */
16170 L4_MABX_B.for_logging6 = L4_MABX_P.for_logging6_Gain *
16171 L4_MABX_B.Decoder_o1.GPS_Time;
16172 GPS_Time = L4_MABX_B.for_logging6;
16173 } else {
16174 CurrentVelocity_kph = L4_MABX_P.NoData_Value;
16175 GPS_X = L4_MABX_P.NoData_Value;
16176 GPS_Y = L4_MABX_P.NoData_Value;
16177 GPS_Time = L4_MABX_P.NoData_Value;
16178 }
16179
16180 /* End of Switch: '<S391>/Switch2' */
16181
16182 /* S-Function (rti_commonblock): '<S403>/S-Function1' */
16183
16184 /* This comment workarounds a code generation problem */
16185
16186 /* End of Outputs for S-Function (rti_commonblock): '<S403>/S-Function1' */
16187
16188 /* S-Function (rti_commonblock): '<S409>/S-Function1' */
16189
16190 /* This comment workarounds a code generation problem */
16191
16192 /* End of Outputs for S-Function (rti_commonblock): '<S409>/S-Function1' */
16193
16194 /* S-Function (rti_commonblock): '<S393>/TRC Exclusion' */
16195 /* This comment workarounds a code generation problem */
16196
16197 /* S-Function (rti_commonblock): '<S394>/TRC Exclusion' */
16198 /* This comment workarounds a code generation problem */
16199
16200 /* UnitDelay: '<S3>/Unit_Delay' */
16201 L4_MABX_B.DesSteeringAngle = L4_MABX_DW.Unit_Delay_1_DSTATE;
16202 L4_MABX_B.Stanley_axleAngle2 = L4_MABX_DW.Unit_Delay_10_DSTATE;
16203 L4_MABX_B.SPN2978_EstEngParasiticLosses_m = L4_MABX_DW.Unit_Delay_100_DSTATE;
16204 L4_MABX_B.SPN1760_GrossCombinationVehic_h = L4_MABX_DW.Unit_Delay_101_DSTATE;
16205 L4_MABX_B.ACCDistanceAlertSignal_o = L4_MABX_DW.Unit_Delay_102_DSTATE;
16206 L4_MABX_B.ForwardCollisionWarning_c = L4_MABX_DW.Unit_Delay_103_DSTATE;
16207 L4_MABX_B.SPN544_EngineReferenceTorque_g = L4_MABX_DW.Unit_Delay_104_DSTATE;
16208 L4_MABX_B.ROPEngCtrlActive = L4_MABX_DW.Unit_Delay_105_DSTATE;
16209 L4_MABX_B.ROPBrakeCtrlActive = L4_MABX_DW.Unit_Delay_106_DSTATE;
16210 L4_MABX_B.YCEngCtrlActive = L4_MABX_DW.Unit_Delay_107_DSTATE;
16211 L4_MABX_B.YCBrakeCtrlActive = L4_MABX_DW.Unit_Delay_108_DSTATE;
16212 L4_MABX_B.SPN1807_SteeringWheelAngle = L4_MABX_DW.Unit_Delay_109_DSTATE;
16213 L4_MABX_B.DesSteeringAngleTerm = L4_MABX_DW.Unit_Delay_11_DSTATE;
16214 L4_MABX_B.SPN1808_YawRate = L4_MABX_DW.Unit_Delay_110_DSTATE;
16215 L4_MABX_B.SPN1810_LongitudinalAcceleratio = L4_MABX_DW.Unit_Delay_111_DSTATE;
16216 L4_MABX_B.SteerWheelTurnCounter = L4_MABX_DW.Unit_Delay_112_DSTATE;
16217 L4_MABX_B.SteerWheelAngleSensorType = L4_MABX_DW.Unit_Delay_113_DSTATE;
16218 L4_MABX_B.LateralAcceleration = L4_MABX_DW.Unit_Delay_114_DSTATE;
16219 L4_MABX_B.BarometricPress = L4_MABX_DW.Unit_Delay_115_DSTATE;
16220 L4_MABX_B.AmbientAirTemp = L4_MABX_DW.Unit_Delay_116_DSTATE;
16221 L4_MABX_B.F_Truck1571_VIN_Match = L4_MABX_DW.Unit_Delay_117_DSTATE;
16222 L4_MABX_B.F_Truck166_VIN_Match = L4_MABX_DW.Unit_Delay_118_DSTATE;
16223 L4_MABX_B.PitchAngleExRange_m = L4_MABX_DW.Unit_Delay_119_DSTATE;
16224 L4_MABX_B.DesSteeringDistTerm = L4_MABX_DW.Unit_Delay_12_DSTATE;
16225 L4_MABX_B.PX2_LanePosEstPosition = L4_MABX_DW.Unit_Delay_120_DSTATE;
16226 L4_MABX_B.PX2_LanePosEstAngle = L4_MABX_DW.Unit_Delay_121_DSTATE;
16227 L4_MABX_B.PX2_LanePosEstNumPoints = L4_MABX_DW.Unit_Delay_122_DSTATE;
16228 L4_MABX_B.Latitude__c = L4_MABX_DW.Unit_Delay_123_DSTATE;
16229 L4_MABX_B.Longitude__m = L4_MABX_DW.Unit_Delay_124_DSTATE;
16230 L4_MABX_B.HDOP__o = L4_MABX_DW.Unit_Delay_125_DSTATE;
16231 L4_MABX_B.XPRControlMode_d = L4_MABX_DW.Unit_Delay_126_DSTATE;
16232 L4_MABX_B.XPRErrorState_d = L4_MABX_DW.Unit_Delay_127_DSTATE;
16233 L4_MABX_B.PressureP1_a = L4_MABX_DW.Unit_Delay_128_DSTATE;
16234 L4_MABX_B.PressureP4_h = L4_MABX_DW.Unit_Delay_129_DSTATE;
16235 L4_MABX_B.numLanePoints = L4_MABX_DW.Unit_Delay_13_DSTATE;
16236 L4_MABX_B.PressureP21_b = L4_MABX_DW.Unit_Delay_130_DSTATE;
16237 L4_MABX_B.PressureP22_e = L4_MABX_DW.Unit_Delay_131_DSTATE;
16238 L4_MABX_B.PressureP42_n = L4_MABX_DW.Unit_Delay_132_DSTATE;
16239 L4_MABX_B.ReAX_ActualHandwheelPos_p = L4_MABX_DW.Unit_Delay_133_DSTATE;
16240 L4_MABX_B.ReAX_EchoedSteerWheelPos_p = L4_MABX_DW.Unit_Delay_134_DSTATE;
16241 L4_MABX_B.RTMapsOk_p = L4_MABX_DW.Unit_Delay_135_DSTATE;
16242 L4_MABX_B.SupervisorMode_l = L4_MABX_DW.Unit_Delay_136_DSTATE;
16243 L4_MABX_B.CurrentAzimuth_rad_k = L4_MABX_DW.Unit_Delay_137_DSTATE;
16244 L4_MABX_B.TargetAzimuth_rad_i = L4_MABX_DW.Unit_Delay_138_DSTATE;
16245 L4_MABX_B.rawPositionError = L4_MABX_DW.Unit_Delay_14_DSTATE;
16246 L4_MABX_B.Curvature_a = L4_MABX_DW.Unit_Delay_141_DSTATE;
16247 L4_MABX_B.CrosstrackError_n = L4_MABX_DW.Unit_Delay_142_DSTATE;
16248 L4_MABX_B.slewedPosError = L4_MABX_DW.Unit_Delay_15_DSTATE;
16249 L4_MABX_B.previewSteeringAngle = L4_MABX_DW.Unit_Delay_16_DSTATE;
16250 L4_MABX_B.APTC_Pedal_torque_dem_value = L4_MABX_DW.Unit_Delay_17_DSTATE;
16251 L4_MABX_B.APTC_arb_pedal_low_idl_sw = L4_MABX_DW.Unit_Delay_18_DSTATE;
16252 L4_MABX_B.APTC_arb_pedal_position = L4_MABX_DW.Unit_Delay_19_DSTATE;
16253 L4_MABX_B.DesSteeringPID_Dterm = L4_MABX_DW.Unit_Delay_2_DSTATE;
16254 L4_MABX_B.signal1 = L4_MABX_DW.Unit_Delay_20_DSTATE;
16255 L4_MABX_B.PID_output = L4_MABX_DW.Unit_Delay_21_DSTATE;
16256 L4_MABX_B.PID_output_unlim = L4_MABX_DW.Unit_Delay_22_DSTATE;
16257 L4_MABX_B.PID_control_error = L4_MABX_DW.Unit_Delay_23_DSTATE;
16258 L4_MABX_B.PID_p_term = L4_MABX_DW.Unit_Delay_24_DSTATE;
16259 L4_MABX_B.PID_i_term = L4_MABX_DW.Unit_Delay_25_DSTATE;
16260 L4_MABX_B.PID_d_term = L4_MABX_DW.Unit_Delay_26_DSTATE;
16261 L4_MABX_B.PID_hold_i_term_f = L4_MABX_DW.Unit_Delay_27_DSTATE;
16262 L4_MABX_B.ThrottlePID_Y = L4_MABX_DW.Unit_Delay_28_DSTATE;
16263 L4_MABX_B.EngineSpeedTarget_Y = L4_MABX_DW.Unit_Delay_29_DSTATE;
16264 L4_MABX_B.DesSteeringPID_Iterm = L4_MABX_DW.Unit_Delay_3_DSTATE;
16265 L4_MABX_B.F_Ignition_relay_command = L4_MABX_DW.Unit_Delay_30_DSTATE;
16266 L4_MABX_B.F_Inverter_relay_command = L4_MABX_DW.Unit_Delay_31_DSTATE;
16267 L4_MABX_B.F_MABX_relay_command = L4_MABX_DW.Unit_Delay_32_DSTATE;
16268 L4_MABX_B.F_Sensor_relay_command = L4_MABX_DW.Unit_Delay_33_DSTATE;
16269 L4_MABX_B.BrkPedArbBrakeSwitch = L4_MABX_DW.Unit_Delay_34_DSTATE;
16270 L4_MABX_B.Accel_rate_ms2 = L4_MABX_DW.Unit_Delay_35_DSTATE;
16271 L4_MABX_B.BrakingControlActive = L4_MABX_DW.Unit_Delay_36_DSTATE;
16272 L4_MABX_B.F_Hold_brakes_at_zero = L4_MABX_DW.Unit_Delay_37_DSTATE;
16273 L4_MABX_B.BrakingPID_Y = L4_MABX_DW.Unit_Delay_38_DSTATE;
16274 L4_MABX_B.BrakingPID_Y_Direct_Pressure = L4_MABX_DW.Unit_Delay_39_DSTATE;
16275 L4_MABX_B.DesSteeringPID_Pterm = L4_MABX_DW.Unit_Delay_4_DSTATE;
16276 L4_MABX_B.VSPD_TARGET_KPH_APV_h = L4_MABX_DW.Unit_Delay_40_DSTATE;
16277 L4_MABX_B.Vehicle_speed_target = L4_MABX_DW.Unit_Delay_41_DSTATE;
16278 L4_MABX_B.VSPD_HYST_KPH_APV = L4_MABX_DW.Unit_Delay_42_DSTATE;
16279 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_APV = L4_MABX_DW.Unit_Delay_43_DSTATE;
16280 L4_MABX_B.ACCEL_LIM_MS2_APV = L4_MABX_DW.Unit_Delay_44_DSTATE;
16281 L4_MABX_B.AutonomousOutputEnabled_n = L4_MABX_DW.Unit_Delay_46_DSTATE;
16282 L4_MABX_B.DesSteeringPID_Y = L4_MABX_DW.Unit_Delay_5_DSTATE;
16283 L4_MABX_B.DesSteeringPID_e = L4_MABX_DW.Unit_Delay_6_DSTATE;
16284 L4_MABX_B.DeSteeringPID_Y2 = L4_MABX_DW.Unit_Delay_7_DSTATE;
16285 L4_MABX_B.CurvatureEst = L4_MABX_DW.Unit_Delay_8_DSTATE;
16286 L4_MABX_B.PedalPWMPos = L4_MABX_DW.Unit_Delay_83_DSTATE;
16287 L4_MABX_B.IgnitionKeySwitch_voltage_c = L4_MABX_DW.Unit_Delay_84_DSTATE;
16288 L4_MABX_B.BrakeSwitch_a = L4_MABX_DW.Unit_Delay_85_DSTATE;
16289 L4_MABX_B.Park_brake_switch = L4_MABX_DW.Unit_Delay_86_DSTATE;
16290 L4_MABX_B.CruiseCtrlEnableSwitch = L4_MABX_DW.Unit_Delay_87_DSTATE;
16291 L4_MABX_B.FrontAxleSpeed = L4_MABX_DW.Unit_Delay_88_DSTATE;
16292 L4_MABX_B.FrontAxleLeftWheelSpeed = L4_MABX_DW.Unit_Delay_89_DSTATE;
16293 L4_MABX_B.Stanley_axleAngle = L4_MABX_DW.Unit_Delay_9_DSTATE;
16294 L4_MABX_B.FrontAxleRightWheelSpeed = L4_MABX_DW.Unit_Delay_90_DSTATE;
16295 L4_MABX_B.EBSBrakeSwitch = L4_MABX_DW.Unit_Delay_91_DSTATE;
16296 L4_MABX_B.SPN524_TransSelectedGear_m = L4_MABX_DW.Unit_Delay_92_DSTATE;
16297 L4_MABX_B.SPN523_TransCurrentGear_n = L4_MABX_DW.Unit_Delay_93_DSTATE;
16298 L4_MABX_B.SPN526_TransActualGearRatio_f = L4_MABX_DW.Unit_Delay_94_DSTATE;
16299 L4_MABX_B.ActualEngPercentTorque = L4_MABX_DW.Unit_Delay_95_DSTATE;
16300 L4_MABX_B.ActlEngPrcntTrqueHighResolution = L4_MABX_DW.Unit_Delay_96_DSTATE;
16301 L4_MABX_B.EngSpeed = L4_MABX_DW.Unit_Delay_97_DSTATE;
16302 L4_MABX_B.DriversDemandEngPercentTorque = L4_MABX_DW.Unit_Delay_98_DSTATE;
16303 L4_MABX_B.SPN514_NominalFrictionPercent_g = L4_MABX_DW.Unit_Delay_99_DSTATE;
16304
16305 /* DataTypeConversion: '<S521>/Data Type Conversion' */
16306 L4_MABX_B.DataTypeConversion_pn = L4_MABX_B.DataTypeConversion_at[0];
16307
16308 /* DataTypeConversion: '<S521>/Data Type Conversion1' */
16309 L4_MABX_B.DataTypeConversion1_ex = L4_MABX_B.DataTypeConversion_at[1];
16310
16311 /* ArithShift: '<S521>/Shift Arithmetic' */
16312 L4_MABX_B.ShiftArithmetic_k = (uint16_T)(L4_MABX_B.DataTypeConversion1_ex << 8);
16313
16314 /* S-Function (sfix_bitop): '<S548>/Operator' */
16315 L4_MABX_B.Operator_a = (uint16_T)(L4_MABX_B.DataTypeConversion_pn |
16316 L4_MABX_B.ShiftArithmetic_k);
16317
16318 /* DataTypeConversion: '<S548>/DataType' */
16319 L4_MABX_B.DataType_kp = L4_MABX_B.Operator_a;
16320
16321 /* DataTypeConversion: '<S521>/Data Type Conversion2' */
16322 L4_MABX_B.DataTypeConversion2_o = L4_MABX_B.DataType_kp;
16323
16324 /* Product: '<S521>/Product' incorporates:
16325 * Constant: '<S521>/Constant'
16326 */
16327 L4_MABX_B.SPN188_EngineSpeedAtIdlePoint1 = L4_MABX_B.DataTypeConversion2_o *
16328 L4_MABX_P.Constant_Value_jq;
16329
16330 /* DataTypeConversion: '<S413>/Data Type Conversion' */
16331 L4_MABX_B.DataTypeConversion_e = L4_MABX_B.SPN188_EngineSpeedAtIdlePoint1;
16332
16333 /* DataTypeConversion: '<S528>/Data Type Conversion' */
16334 L4_MABX_B.DataTypeConversion_a = L4_MABX_B.DataTypeConversion_at[2];
16335
16336 /* Sum: '<S528>/Add' incorporates:
16337 * Constant: '<S528>/Constant'
16338 */
16339 L4_MABX_B.SPN539_EnginePercentTorqueAtIdl = L4_MABX_B.DataTypeConversion_a +
16340 L4_MABX_P.Constant_Value_aa;
16341
16342 /* DataTypeConversion: '<S413>/Data Type Conversion1' */
16343 L4_MABX_B.DataTypeConversion1_l = L4_MABX_B.SPN539_EnginePercentTorqueAtIdl;
16344
16345 /* DataTypeConversion: '<S525>/Data Type Conversion' */
16346 L4_MABX_B.DataTypeConversion_ow = L4_MABX_B.DataTypeConversion_at[15];
16347
16348 /* DataTypeConversion: '<S525>/Data Type Conversion1' */
16349 L4_MABX_B.DataTypeConversion1_be = L4_MABX_B.DataTypeConversion_at[16];
16350
16351 /* ArithShift: '<S525>/Shift Arithmetic' */
16352 L4_MABX_B.ShiftArithmetic_f = (uint16_T)(L4_MABX_B.DataTypeConversion1_be << 8);
16353
16354 /* S-Function (sfix_bitop): '<S550>/Operator' */
16355 L4_MABX_B.Operator_ll = (uint16_T)(L4_MABX_B.DataTypeConversion_ow |
16356 L4_MABX_B.ShiftArithmetic_f);
16357
16358 /* DataTypeConversion: '<S550>/DataType' */
16359 L4_MABX_B.DataType_as = L4_MABX_B.Operator_ll;
16360
16361 /* DataTypeConversion: '<S525>/Data Type Conversion2' */
16362 L4_MABX_B.DataTypeConversion2_e = L4_MABX_B.DataType_as;
16363
16364 /* Product: '<S525>/Product' incorporates:
16365 * Constant: '<S525>/Constant'
16366 */
16367 L4_MABX_B.SPN532_EngineSpeedAtHighIdlePoi = L4_MABX_B.DataTypeConversion2_e *
16368 L4_MABX_P.Constant_Value_my;
16369
16370 /* DataTypeConversion: '<S413>/Data Type Conversion10' */
16371 L4_MABX_B.DataTypeConversion10 = L4_MABX_B.SPN532_EngineSpeedAtHighIdlePoi;
16372
16373 /* DataTypeConversion: '<S526>/Data Type Conversion1' */
16374 L4_MABX_B.DataTypeConversion1_ntl = L4_MABX_B.DataTypeConversion_at[17];
16375
16376 /* DataTypeConversion: '<S526>/Data Type Conversion3' */
16377 L4_MABX_B.DataTypeConversion3_k = L4_MABX_B.DataTypeConversion_at[18];
16378
16379 /* ArithShift: '<S526>/Shift Arithmetic' */
16380 L4_MABX_B.ShiftArithmetic_i = (uint16_T)(L4_MABX_B.DataTypeConversion3_k << 8);
16381
16382 /* S-Function (sfix_bitop): '<S551>/Operator' */
16383 L4_MABX_B.Operator_jb = (uint16_T)(L4_MABX_B.DataTypeConversion1_ntl |
16384 L4_MABX_B.ShiftArithmetic_i);
16385
16386 /* DataTypeConversion: '<S551>/DataType' */
16387 L4_MABX_B.DataType_l5 = L4_MABX_B.Operator_jb;
16388
16389 /* DataTypeConversion: '<S526>/Data Type Conversion2' */
16390 L4_MABX_B.DataTypeConversion2_ol = L4_MABX_B.DataType_l5;
16391
16392 /* Product: '<S526>/Product' incorporates:
16393 * Constant: '<S526>/Constant'
16394 */
16395 L4_MABX_B.SPN545_EngineGainKpOfTheEndspee = L4_MABX_B.DataTypeConversion2_ol *
16396 L4_MABX_P.Constant_Value_pr;
16397
16398 /* DataTypeConversion: '<S413>/Data Type Conversion11' */
16399 L4_MABX_B.DataTypeConversion11 = L4_MABX_B.SPN545_EngineGainKpOfTheEndspee;
16400
16401 /* DataTypeConversion: '<S529>/Data Type Conversion1' */
16402 L4_MABX_B.DataTypeConversion1_pu = L4_MABX_B.DataTypeConversion_at[21];
16403
16404 /* DataTypeConversion: '<S529>/Data Type Conversion3' */
16405 L4_MABX_B.DataTypeConversion3_j = L4_MABX_B.DataTypeConversion_at[22];
16406
16407 /* ArithShift: '<S529>/Shift Arithmetic' */
16408 L4_MABX_B.ShiftArithmetic_h = (uint16_T)(L4_MABX_B.DataTypeConversion3_j << 8);
16409
16410 /* S-Function (sfix_bitop): '<S553>/Operator' */
16411 L4_MABX_B.Operator_g = (uint16_T)(L4_MABX_B.DataTypeConversion1_pu |
16412 L4_MABX_B.ShiftArithmetic_h);
16413
16414 /* DataTypeConversion: '<S553>/DataType' */
16415 L4_MABX_B.DataType_pr = L4_MABX_B.Operator_g;
16416
16417 /* DataTypeConversion: '<S529>/Data Type Conversion2' */
16418 L4_MABX_B.DataTypeConversion2_fd = L4_MABX_B.DataType_pr;
16419
16420 /* Product: '<S529>/Product' incorporates:
16421 * Constant: '<S529>/Constant'
16422 */
16423 L4_MABX_B.SPN533_EngineMaximumMomentaryOv = L4_MABX_B.DataTypeConversion2_fd *
16424 L4_MABX_P.Constant_Value_ls;
16425
16426 /* DataTypeConversion: '<S413>/Data Type Conversion13' */
16427 L4_MABX_B.DataTypeConversion13 = L4_MABX_B.SPN533_EngineMaximumMomentaryOv;
16428
16429 /* DataTypeConversion: '<S530>/Data Type Conversion2' */
16430 L4_MABX_B.DataTypeConversion2_fp = L4_MABX_B.DataTypeConversion_at[23];
16431
16432 /* Product: '<S530>/Product' incorporates:
16433 * Constant: '<S530>/Constant'
16434 */
16435 L4_MABX_B.SPN534_EngineMaximumMomentaryOv = L4_MABX_B.DataTypeConversion2_fp *
16436 L4_MABX_P.Constant_Value_eg;
16437
16438 /* DataTypeConversion: '<S413>/Data Type Conversion14' */
16439 L4_MABX_B.DataTypeConversion14 = L4_MABX_B.SPN534_EngineMaximumMomentaryOv;
16440
16441 /* DataTypeConversion: '<S531>/Data Type Conversion2' */
16442 L4_MABX_B.DataTypeConversion2_g = L4_MABX_B.DataTypeConversion_at[24];
16443
16444 /* Product: '<S531>/Product' incorporates:
16445 * Constant: '<S531>/Constant'
16446 */
16447 L4_MABX_B.SPN535_EngineRequestedSpeedCont = L4_MABX_B.DataTypeConversion2_g *
16448 L4_MABX_P.Constant_Value_ky;
16449
16450 /* DataTypeConversion: '<S413>/Data Type Conversion15' */
16451 L4_MABX_B.DataTypeConversion15 = L4_MABX_B.SPN535_EngineRequestedSpeedCont;
16452
16453 /* DataTypeConversion: '<S532>/Data Type Conversion2' */
16454 L4_MABX_B.DataTypeConversion2_oc = L4_MABX_B.DataTypeConversion_at[25];
16455
16456 /* Product: '<S532>/Product' incorporates:
16457 * Constant: '<S532>/Constant'
16458 */
16459 L4_MABX_B.SPN536_EngineRequestedSpeedCont = L4_MABX_B.DataTypeConversion2_oc *
16460 L4_MABX_P.Constant_Value_pw;
16461
16462 /* DataTypeConversion: '<S413>/Data Type Conversion16' */
16463 L4_MABX_B.DataTypeConversion16 = L4_MABX_B.SPN536_EngineRequestedSpeedCont;
16464
16465 /* DataTypeConversion: '<S533>/Data Type Conversion' */
16466 L4_MABX_B.DataTypeConversion_i = L4_MABX_B.DataTypeConversion_at[26];
16467
16468 /* Sum: '<S533>/Add' incorporates:
16469 * Constant: '<S533>/Constant'
16470 */
16471 L4_MABX_B.SPN537_EngineRequestedTorqueCon = L4_MABX_B.DataTypeConversion_i +
16472 L4_MABX_P.Constant_Value_cd;
16473
16474 /* DataTypeConversion: '<S413>/Data Type Conversion17' */
16475 L4_MABX_B.DataTypeConversion17 = L4_MABX_B.SPN537_EngineRequestedTorqueCon;
16476
16477 /* DataTypeConversion: '<S534>/Data Type Conversion' */
16478 L4_MABX_B.DataTypeConversion_n = L4_MABX_B.DataTypeConversion_at[27];
16479
16480 /* Sum: '<S534>/Add' incorporates:
16481 * Constant: '<S534>/Constant'
16482 */
16483 L4_MABX_B.SPN538_EngineRequestedTorqueCon = L4_MABX_B.DataTypeConversion_n +
16484 L4_MABX_P.Constant_Value_gp;
16485
16486 /* DataTypeConversion: '<S413>/Data Type Conversion18' */
16487 L4_MABX_B.DataTypeConversion18 = L4_MABX_B.SPN538_EngineRequestedTorqueCon;
16488
16489 /* DataTypeConversion: '<S535>/Data Type Conversion1' */
16490 L4_MABX_B.DataTypeConversion1_it = L4_MABX_B.DataTypeConversion_at[28];
16491
16492 /* DataTypeConversion: '<S535>/Data Type Conversion3' */
16493 L4_MABX_B.DataTypeConversion3_kz = L4_MABX_B.DataTypeConversion_at[29];
16494
16495 /* ArithShift: '<S535>/Shift Arithmetic' */
16496 L4_MABX_B.ShiftArithmetic_b = (uint16_T)(L4_MABX_B.DataTypeConversion3_kz << 8);
16497
16498 /* S-Function (sfix_bitop): '<S554>/Operator' */
16499 L4_MABX_B.Operator_kf = (uint16_T)(L4_MABX_B.DataTypeConversion1_it |
16500 L4_MABX_B.ShiftArithmetic_b);
16501
16502 /* DataTypeConversion: '<S554>/DataType' */
16503 L4_MABX_B.DataType_pi = L4_MABX_B.Operator_kf;
16504
16505 /* DataTypeConversion: '<S535>/Data Type Conversion2' */
16506 L4_MABX_B.DataTypeConversion2_n = L4_MABX_B.DataType_pi;
16507
16508 /* Product: '<S535>/Product' incorporates:
16509 * Constant: '<S535>/Constant'
16510 */
16511 L4_MABX_B.SPN1712_EngRequestedSpeedCtrlRn = L4_MABX_B.DataTypeConversion2_n *
16512 L4_MABX_P.Constant_Value_fs;
16513
16514 /* DataTypeConversion: '<S413>/Data Type Conversion19' */
16515 L4_MABX_B.DataTypeConversion19 = L4_MABX_B.SPN1712_EngRequestedSpeedCtrlRn;
16516
16517 /* DataTypeConversion: '<S543>/Data Type Conversion' */
16518 L4_MABX_B.DataTypeConversion_g4 = L4_MABX_B.DataTypeConversion_at[3];
16519
16520 /* DataTypeConversion: '<S543>/Data Type Conversion1' */
16521 L4_MABX_B.DataTypeConversion1_en = L4_MABX_B.DataTypeConversion_at[4];
16522
16523 /* ArithShift: '<S543>/Shift Arithmetic' */
16524 L4_MABX_B.ShiftArithmetic_it = (uint16_T)(L4_MABX_B.DataTypeConversion1_en <<
16525 8);
16526
16527 /* S-Function (sfix_bitop): '<S557>/Operator' */
16528 L4_MABX_B.Operator_ii = (uint16_T)(L4_MABX_B.DataTypeConversion_g4 |
16529 L4_MABX_B.ShiftArithmetic_it);
16530
16531 /* DataTypeConversion: '<S557>/DataType' */
16532 L4_MABX_B.DataType_or = L4_MABX_B.Operator_ii;
16533
16534 /* DataTypeConversion: '<S543>/Data Type Conversion2' */
16535 L4_MABX_B.DataTypeConversion2_ox = L4_MABX_B.DataType_or;
16536
16537 /* Product: '<S543>/Product' incorporates:
16538 * Constant: '<S543>/Constant'
16539 */
16540 L4_MABX_B.SPN528_EngineSpeedAtPoint2 = L4_MABX_B.DataTypeConversion2_ox *
16541 L4_MABX_P.Constant_Value_pb;
16542
16543 /* DataTypeConversion: '<S413>/Data Type Conversion2' */
16544 L4_MABX_B.DataTypeConversion2_m = L4_MABX_B.SPN528_EngineSpeedAtPoint2;
16545
16546 /* DataTypeConversion: '<S536>/Data Type Conversion1' */
16547 L4_MABX_B.DataTypeConversion1_ff = L4_MABX_B.DataTypeConversion_at[30];
16548
16549 /* DataTypeConversion: '<S536>/Data Type Conversion3' */
16550 L4_MABX_B.DataTypeConversion3_du = L4_MABX_B.DataTypeConversion_at[31];
16551
16552 /* ArithShift: '<S536>/Shift Arithmetic' */
16553 L4_MABX_B.ShiftArithmetic_g = (uint16_T)(L4_MABX_B.DataTypeConversion3_du << 8);
16554
16555 /* S-Function (sfix_bitop): '<S555>/Operator' */
16556 L4_MABX_B.Operator_ok = (uint16_T)(L4_MABX_B.DataTypeConversion1_ff |
16557 L4_MABX_B.ShiftArithmetic_g);
16558
16559 /* DataTypeConversion: '<S555>/DataType' */
16560 L4_MABX_B.DataType_cv = L4_MABX_B.Operator_ok;
16561
16562 /* DataTypeConversion: '<S536>/Data Type Conversion2' */
16563 L4_MABX_B.DataTypeConversion2_p = L4_MABX_B.DataType_cv;
16564
16565 /* Product: '<S536>/Product' incorporates:
16566 * Constant: '<S536>/Constant'
16567 */
16568 L4_MABX_B.SPN1794_EngineMomentOfInertia = L4_MABX_B.DataTypeConversion2_p *
16569 L4_MABX_P.Constant_Value_gl;
16570
16571 /* DataTypeConversion: '<S413>/Data Type Conversion20' */
16572 L4_MABX_B.DataTypeConversion20 = L4_MABX_B.SPN1794_EngineMomentOfInertia;
16573
16574 /* DataTypeConversion: '<S537>/Data Type Conversion' */
16575 L4_MABX_B.DataTypeConversion_mv = L4_MABX_B.DataTypeConversion_at[32];
16576
16577 /* DataTypeConversion: '<S537>/Data Type Conversion1' */
16578 L4_MABX_B.DataTypeConversion1_mx = L4_MABX_B.DataTypeConversion_at[33];
16579
16580 /* ArithShift: '<S537>/Shift Arithmetic' */
16581 L4_MABX_B.ShiftArithmetic_n = (uint16_T)(L4_MABX_B.DataTypeConversion1_mx << 8);
16582
16583 /* S-Function (sfix_bitop): '<S556>/Operator' */
16584 L4_MABX_B.Operator_l1 = (uint16_T)(L4_MABX_B.DataTypeConversion_mv |
16585 L4_MABX_B.ShiftArithmetic_n);
16586
16587 /* DataTypeConversion: '<S556>/DataType' */
16588 L4_MABX_B.DataType_f1 = L4_MABX_B.Operator_l1;
16589
16590 /* DataTypeConversion: '<S537>/Data Type Conversion2' */
16591 L4_MABX_B.SPN1846_EngineDefaultTorqueLimi = L4_MABX_B.DataType_f1;
16592
16593 /* DataTypeConversion: '<S413>/Data Type Conversion21' */
16594 L4_MABX_B.DataTypeConversion21 = L4_MABX_B.SPN1846_EngineDefaultTorqueLimi;
16595
16596 /* DataTypeConversion: '<S413>/Data Type Conversion22' */
16597 L4_MABX_B.DataTypeConversion22 = L4_MABX_B.DataTypeConversion_at[34];
16598
16599 /* DataTypeConversion: '<S413>/Data Type Conversion23' */
16600 L4_MABX_B.DataTypeConversion23 = L4_MABX_B.DataTypeConversion_at[35];
16601
16602 /* DataTypeConversion: '<S413>/Data Type Conversion24' */
16603 L4_MABX_B.DataTypeConversion24 = L4_MABX_B.DataTypeConversion_at[36];
16604
16605 /* DataTypeConversion: '<S413>/Data Type Conversion25' */
16606 L4_MABX_B.DataTypeConversion25 = L4_MABX_B.DataTypeConversion_at[37];
16607
16608 /* DataTypeConversion: '<S413>/Data Type Conversion26' */
16609 L4_MABX_B.DataTypeConversion26 = L4_MABX_B.DataTypeConversion_at[38];
16610
16611 /* DataTypeConversion: '<S544>/Data Type Conversion' */
16612 L4_MABX_B.DataTypeConversion_if = L4_MABX_B.DataTypeConversion_at[5];
16613
16614 /* Sum: '<S544>/Add' incorporates:
16615 * Constant: '<S544>/Constant'
16616 */
16617 L4_MABX_B.SPN540_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_if +
16618 L4_MABX_P.Constant_Value_gb;
16619
16620 /* DataTypeConversion: '<S413>/Data Type Conversion3' */
16621 L4_MABX_B.DataTypeConversion3 = L4_MABX_B.SPN540_EnginePercentTorqueAtPoi;
16622
16623 /* DataTypeConversion: '<S545>/Data Type Conversion' */
16624 L4_MABX_B.DataTypeConversion_lq = L4_MABX_B.DataTypeConversion_at[6];
16625
16626 /* DataTypeConversion: '<S545>/Data Type Conversion1' */
16627 L4_MABX_B.DataTypeConversion1_hs = L4_MABX_B.DataTypeConversion_at[7];
16628
16629 /* ArithShift: '<S545>/Shift Arithmetic' */
16630 L4_MABX_B.ShiftArithmetic_l = (uint16_T)(L4_MABX_B.DataTypeConversion1_hs << 8);
16631
16632 /* S-Function (sfix_bitop): '<S558>/Operator' */
16633 L4_MABX_B.Operator_bx = (uint16_T)(L4_MABX_B.DataTypeConversion_lq |
16634 L4_MABX_B.ShiftArithmetic_l);
16635
16636 /* DataTypeConversion: '<S558>/DataType' */
16637 L4_MABX_B.DataType_iz = L4_MABX_B.Operator_bx;
16638
16639 /* DataTypeConversion: '<S545>/Data Type Conversion2' */
16640 L4_MABX_B.DataTypeConversion2_pg = L4_MABX_B.DataType_iz;
16641
16642 /* Product: '<S545>/Product' incorporates:
16643 * Constant: '<S545>/Constant'
16644 */
16645 L4_MABX_B.SPN529_EngineSpeedAtPoint3 = L4_MABX_B.DataTypeConversion2_pg *
16646 L4_MABX_P.Constant_Value_if;
16647
16648 /* DataTypeConversion: '<S413>/Data Type Conversion4' */
16649 L4_MABX_B.DataTypeConversion4 = L4_MABX_B.SPN529_EngineSpeedAtPoint3;
16650
16651 /* DataTypeConversion: '<S546>/Data Type Conversion' */
16652 L4_MABX_B.DataTypeConversion_l0 = L4_MABX_B.DataTypeConversion_at[8];
16653
16654 /* Sum: '<S546>/Add' incorporates:
16655 * Constant: '<S546>/Constant'
16656 */
16657 L4_MABX_B.SPN541_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_l0 +
16658 L4_MABX_P.Constant_Value_gj;
16659
16660 /* DataTypeConversion: '<S413>/Data Type Conversion5' */
16661 L4_MABX_B.DataTypeConversion5 = L4_MABX_B.SPN541_EnginePercentTorqueAtPoi;
16662
16663 /* DataTypeConversion: '<S547>/Data Type Conversion' */
16664 L4_MABX_B.DataTypeConversion_oi = L4_MABX_B.DataTypeConversion_at[9];
16665
16666 /* DataTypeConversion: '<S547>/Data Type Conversion1' */
16667 L4_MABX_B.DataTypeConversion1_fc = L4_MABX_B.DataTypeConversion_at[10];
16668
16669 /* ArithShift: '<S547>/Shift Arithmetic' */
16670 L4_MABX_B.ShiftArithmetic_d = (uint16_T)(L4_MABX_B.DataTypeConversion1_fc << 8);
16671
16672 /* S-Function (sfix_bitop): '<S559>/Operator' */
16673 L4_MABX_B.Operator_n = (uint16_T)(L4_MABX_B.DataTypeConversion_oi |
16674 L4_MABX_B.ShiftArithmetic_d);
16675
16676 /* DataTypeConversion: '<S559>/DataType' */
16677 L4_MABX_B.DataType_pu = L4_MABX_B.Operator_n;
16678
16679 /* DataTypeConversion: '<S547>/Data Type Conversion2' */
16680 L4_MABX_B.DataTypeConversion2_b = L4_MABX_B.DataType_pu;
16681
16682 /* Product: '<S547>/Product' incorporates:
16683 * Constant: '<S547>/Constant'
16684 */
16685 L4_MABX_B.SPN530_EngineSpeedAtPoint4 = L4_MABX_B.DataTypeConversion2_b *
16686 L4_MABX_P.Constant_Value_p4;
16687
16688 /* DataTypeConversion: '<S413>/Data Type Conversion6' */
16689 L4_MABX_B.DataTypeConversion6 = L4_MABX_B.SPN530_EngineSpeedAtPoint4;
16690
16691 /* DataTypeConversion: '<S522>/Data Type Conversion' */
16692 L4_MABX_B.DataTypeConversion_b = L4_MABX_B.DataTypeConversion_at[11];
16693
16694 /* Sum: '<S522>/Add' incorporates:
16695 * Constant: '<S522>/Constant'
16696 */
16697 L4_MABX_B.SPN542_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_b +
16698 L4_MABX_P.Constant_Value_dj;
16699
16700 /* DataTypeConversion: '<S413>/Data Type Conversion7' */
16701 L4_MABX_B.DataTypeConversion7 = L4_MABX_B.SPN542_EnginePercentTorqueAtPoi;
16702
16703 /* DataTypeConversion: '<S523>/Data Type Conversion' */
16704 L4_MABX_B.DataTypeConversion_fa = L4_MABX_B.DataTypeConversion_at[12];
16705
16706 /* DataTypeConversion: '<S523>/Data Type Conversion1' */
16707 L4_MABX_B.DataTypeConversion1_b2 = L4_MABX_B.DataTypeConversion_at[13];
16708
16709 /* ArithShift: '<S523>/Shift Arithmetic' */
16710 L4_MABX_B.ShiftArithmetic_p = (uint16_T)(L4_MABX_B.DataTypeConversion1_b2 << 8);
16711
16712 /* S-Function (sfix_bitop): '<S549>/Operator' */
16713 L4_MABX_B.Operator_ce = (uint16_T)(L4_MABX_B.DataTypeConversion_fa |
16714 L4_MABX_B.ShiftArithmetic_p);
16715
16716 /* DataTypeConversion: '<S549>/DataType' */
16717 L4_MABX_B.DataType_ib = L4_MABX_B.Operator_ce;
16718
16719 /* DataTypeConversion: '<S523>/Data Type Conversion2' */
16720 L4_MABX_B.DataTypeConversion2_ob = L4_MABX_B.DataType_ib;
16721
16722 /* Product: '<S523>/Product' incorporates:
16723 * Constant: '<S523>/Constant'
16724 */
16725 L4_MABX_B.SPN531_EngineSpeedAtPoint5 = L4_MABX_B.DataTypeConversion2_ob *
16726 L4_MABX_P.Constant_Value_mt;
16727
16728 /* DataTypeConversion: '<S413>/Data Type Conversion8' */
16729 L4_MABX_B.DataTypeConversion8 = L4_MABX_B.SPN531_EngineSpeedAtPoint5;
16730
16731 /* DataTypeConversion: '<S524>/Data Type Conversion' */
16732 L4_MABX_B.DataTypeConversion_h = L4_MABX_B.DataTypeConversion_at[14];
16733
16734 /* Sum: '<S524>/Add' incorporates:
16735 * Constant: '<S524>/Constant'
16736 */
16737 L4_MABX_B.SPN543_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_h +
16738 L4_MABX_P.Constant_Value_fe;
16739
16740 /* DataTypeConversion: '<S413>/Data Type Conversion9' */
16741 L4_MABX_B.DataTypeConversion9 = L4_MABX_B.SPN543_EnginePercentTorqueAtPoi;
16742
16743 /* DataTypeConversion: '<S470>/Data Type Conversion8' */
16744 L4_MABX_B.RX_status_b = (L4_MABX_B.SFunction1_o9_bw != 0.0);
16745
16746 /* MultiPortSwitch: '<S416>/Multiport_Switch' */
16747 L4_MABX_B.RX_status_c = L4_MABX_B.RX_status_b;
16748
16749 /* DataTypeConversion: '<S470>/Data Type Conversion9' */
16750 L4_MABX_B.RX_time = L4_MABX_B.SFunction1_o10_p4;
16751
16752 /* MultiPortSwitch: '<S416>/Multiport_Switch' */
16753 L4_MABX_B.RX_time_b = L4_MABX_B.RX_time;
16754
16755 /* DataTypeConversion: '<S470>/Data Type Conversion10' */
16756 L4_MABX_B.RX_delta_time = L4_MABX_B.SFunction1_o11_do;
16757
16758 /* MultiPortSwitch: '<S416>/Multiport_Switch' */
16759 L4_MABX_B.RX_delta_time_j = L4_MABX_B.RX_delta_time;
16760
16761 /* RelationalOperator: '<S474>/Operator' incorporates:
16762 * Constant: '<S416>/Constant'
16763 * Constant: '<S471>/Constant1'
16764 */
16765 L4_MABX_B.Operator_mf = (L4_MABX_P.Constant_Value_ex ==
16766 L4_MABX_P.Constant1_Value_mr);
16767
16768 /* RelationalOperator: '<S475>/Operator' incorporates:
16769 * Constant: '<S416>/Constant'
16770 * Constant: '<S471>/Constant2'
16771 */
16772 L4_MABX_B.Operator_h2r = (L4_MABX_P.Constant_Value_ex ==
16773 L4_MABX_P.Constant2_Value_bv);
16774
16775 /* RelationalOperator: '<S476>/Operator' incorporates:
16776 * Constant: '<S416>/Constant'
16777 * Constant: '<S471>/Constant3'
16778 */
16779 L4_MABX_B.Operator_dz = (L4_MABX_P.Constant_Value_ex ==
16780 L4_MABX_P.Constant3_Value_o);
16781
16782 /* RelationalOperator: '<S477>/Operator' incorporates:
16783 * Constant: '<S416>/Constant'
16784 * Constant: '<S471>/Constant4'
16785 */
16786 L4_MABX_B.Operator_gq = (L4_MABX_P.Constant_Value_ex ==
16787 L4_MABX_P.Constant4_Value_mo);
16788
16789 /* RelationalOperator: '<S478>/Operator' incorporates:
16790 * Constant: '<S416>/Constant'
16791 * Constant: '<S471>/Constant5'
16792 */
16793 L4_MABX_B.Operator_b5 = (L4_MABX_P.Constant_Value_ex ==
16794 L4_MABX_P.Constant5_Value_c);
16795
16796 /* DataTypeConversion: '<S479>/Data Type Conversion9' */
16797 L4_MABX_B.RX_time_b4 = L4_MABX_B.SFunction1_o10_ji;
16798
16799 /* MultiPortSwitch: '<S417>/Multiport_Switch' */
16800 L4_MABX_B.RX_time_d = L4_MABX_B.RX_time_b4;
16801
16802 /* DataTypeConversion: '<S479>/Data Type Conversion10' */
16803 L4_MABX_B.RX_delta_time_a = L4_MABX_B.SFunction1_o11_jx;
16804
16805 /* MultiPortSwitch: '<S417>/Multiport_Switch' */
16806 L4_MABX_B.RX_delta_time_b = L4_MABX_B.RX_delta_time_a;
16807
16808 /* RelationalOperator: '<S483>/Operator' incorporates:
16809 * Constant: '<S417>/Constant'
16810 * Constant: '<S480>/Constant1'
16811 */
16812 L4_MABX_B.Operator_kz = (L4_MABX_P.Constant_Value_ma ==
16813 L4_MABX_P.Constant1_Value_en);
16814
16815 /* RelationalOperator: '<S484>/Operator' incorporates:
16816 * Constant: '<S417>/Constant'
16817 * Constant: '<S480>/Constant2'
16818 */
16819 L4_MABX_B.Operator_m0 = (L4_MABX_P.Constant_Value_ma ==
16820 L4_MABX_P.Constant2_Value_j);
16821
16822 /* RelationalOperator: '<S485>/Operator' incorporates:
16823 * Constant: '<S417>/Constant'
16824 * Constant: '<S480>/Constant3'
16825 */
16826 L4_MABX_B.Operator_go = (L4_MABX_P.Constant_Value_ma ==
16827 L4_MABX_P.Constant3_Value_b);
16828
16829 /* RelationalOperator: '<S486>/Operator' incorporates:
16830 * Constant: '<S417>/Constant'
16831 * Constant: '<S480>/Constant4'
16832 */
16833 L4_MABX_B.Operator_oh = (L4_MABX_P.Constant_Value_ma ==
16834 L4_MABX_P.Constant4_Value_e);
16835
16836 /* RelationalOperator: '<S487>/Operator' incorporates:
16837 * Constant: '<S417>/Constant'
16838 * Constant: '<S480>/Constant5'
16839 */
16840 L4_MABX_B.Operator_d2 = (L4_MABX_P.Constant_Value_ma ==
16841 L4_MABX_P.Constant5_Value_g);
16842
16843 /* DataTypeConversion: '<S488>/Data Type Conversion1' */
16844 L4_MABX_B.SpeedOfForwardVehicle = L4_MABX_B.SFunction1_o1_lt;
16845
16846 /* DataTypeConversion: '<S488>/Data Type Conversion10' */
16847 L4_MABX_B.RX_delta_time_o = L4_MABX_B.SFunction1_o13_cn;
16848
16849 /* DataTypeConversion: '<S488>/Data Type Conversion11' */
16850 L4_MABX_B.ACCSystemShutoffWarning = L4_MABX_B.SFunction1_o8_bw;
16851
16852 /* DataTypeConversion: '<S488>/Data Type Conversion2' */
16853 L4_MABX_B.DistanceToForwardVehicle = L4_MABX_B.SFunction1_o2_c2;
16854
16855 /* DataTypeConversion: '<S488>/Data Type Conversion3' */
16856 L4_MABX_B.AdaptiveCruiseCtrlSetSpeed = L4_MABX_B.SFunction1_o3_nw;
16857
16858 /* DataTypeConversion: '<S488>/Data Type Conversion4' */
16859 L4_MABX_B.AdaptiveCruiseCtrlMode = L4_MABX_B.SFunction1_o4_moy;
16860
16861 /* DataTypeConversion: '<S488>/Data Type Conversion5' */
16862 L4_MABX_B.AdptveCruiseCtrlSetDistanceMode = L4_MABX_B.SFunction1_o5_es;
16863
16864 /* DataTypeConversion: '<S488>/Data Type Conversion6' */
16865 L4_MABX_B.RoadCurvature = L4_MABX_B.SFunction1_o6_i;
16866
16867 /* DataTypeConversion: '<S488>/Data Type Conversion7' */
16868 L4_MABX_B.ACCTargetDetected = L4_MABX_B.SFunction1_o7_i1;
16869
16870 /* DataTypeConversion: '<S488>/Data Type Conversion8' */
16871 L4_MABX_B.RX_status_cn = (L4_MABX_B.SFunction1_o11_fw != 0.0);
16872
16873 /* DataTypeConversion: '<S488>/Data Type Conversion9' */
16874 L4_MABX_B.RX_time_d3 = L4_MABX_B.SFunction1_o12_m;
16875
16876 /* Outputs for Enabled SubSystem: '<S490>/AEBS1_A0' incorporates:
16877 * EnablePort: '<S491>/Enable'
16878 */
16879 /* Constant: '<S419>/Constant' */
16880 if (L4_MABX_P.Constant_Value_la) {
16881 /* S-Function (rti_commonblock): '<S491>/S-Function1' */
16882 /* This comment workarounds a code generation problem */
16883
16884 /* dSPACE RTICAN RX Message Block: "AEBS1_A0" Id:217067306 */
16885 {
16886 UInt32 *CAN_Msg;
16887 static dsfloat time_old = 0.0;
16888
16889 /* Read status and timestamp info (previous message) */
16890 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].timestamp !=
16891 time_old) {
16892 /* ... save timestamp info for the calculation of the RX status
16893 during the consecutive sample hit*/
16894 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].
16895 timestamp;
16896
16897 /* ... set the processed flag to one */
16898 L4_MABX_B.SFunction1_o6_em = 1.0;
16899 L4_MABX_B.SFunction1_o7_ie4 = (real_T)
16900 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].timestamp;
16901 L4_MABX_B.SFunction1_o8_bp = (real_T)
16902 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].deltatime;
16903 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].data;
16904
16905 /* Decode CAN message */
16906 {
16907 {
16908 rtican_Signal_t CAN_Sgn;
16909
16910 /* ...... "AdvEmergencyBrkSysState" (0|4, standard signal, unsigned int, little endian) */
16911 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16912 CAN_Sgn.UnsignedSgn &= 0x0000000F;
16913 L4_MABX_B.SFunction1_o1_io = ((real_T) CAN_Sgn.UnsignedSgn);
16914
16915 /* ...... "CollisionWarningLevel" (4|4, standard signal, unsigned int, little endian) */
16916 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16917 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
16918 CAN_Sgn.UnsignedSgn &= 0x0000000F;
16919 L4_MABX_B.SFunction1_o2_m1m = ((real_T) CAN_Sgn.UnsignedSgn);
16920
16921 /* ...... "RelObjctDetForAdvEmergBrakingSys" (8|3, standard signal, unsigned int, little endian) */
16922 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16923 CAN_Sgn.UnsignedSgn &= 0x00000007;
16924 L4_MABX_B.SFunction1_o3_gnd = ((real_T) CAN_Sgn.UnsignedSgn);
16925
16926 /* ...... "BendOffProbabOfRelevantObject" (12|3, standard signal, unsigned int, little endian) */
16927 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16928 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
16929 CAN_Sgn.UnsignedSgn &= 0x00000007;
16930 L4_MABX_B.SFunction1_o4_di = ((real_T) CAN_Sgn.UnsignedSgn);
16931
16932 /* ...... "TimeToCollisionWithRelevantObj" (16|8, standard signal, unsigned int, little endian) */
16933 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
16934 CAN_Sgn.UnsignedSgn &= 0x000000FF;
16935 L4_MABX_B.SFunction1_o5_em = ((real_T) CAN_Sgn.UnsignedSgn);
16936 }
16937 }
16938 } else {
16939 /* set RX status to 0 because no new message has arrived */
16940 L4_MABX_B.SFunction1_o6_em = 0.0;
16941 }
16942 }
16943 }
16944
16945 /* End of Constant: '<S419>/Constant' */
16946 /* End of Outputs for SubSystem: '<S490>/AEBS1_A0' */
16947
16948 /* DataTypeConversion: '<S490>/Data Type Conversion10' */
16949 L4_MABX_B.RX_delta_time_n = L4_MABX_B.SFunction1_o8_bp;
16950
16951 /* DataTypeConversion: '<S490>/Data Type Conversion8' */
16952 L4_MABX_B.RX_status_l = (L4_MABX_B.SFunction1_o6_em != 0.0);
16953
16954 /* DataTypeConversion: '<S490>/Data Type Conversion9' */
16955 L4_MABX_B.RX_time_o = L4_MABX_B.SFunction1_o7_ie4;
16956
16957 /* DataTypeConversion: '<S492>/Data Type Conversion10' */
16958 L4_MABX_B.RX_delta_time_h = L4_MABX_B.SFunction1_o11_j2;
16959
16960 /* DataTypeConversion: '<S492>/Data Type Conversion8' */
16961 L4_MABX_B.RX_status_db = (L4_MABX_B.SFunction1_o9_kp != 0.0);
16962
16963 /* DataTypeConversion: '<S492>/Data Type Conversion9' */
16964 L4_MABX_B.RX_time_i = L4_MABX_B.SFunction1_o10_ju;
16965
16966 /* DataTypeConversion: '<S494>/Data Type Conversion10' */
16967 L4_MABX_B.RX_delta_time_m = L4_MABX_B.SFunction1_o8_au;
16968
16969 /* DataTypeConversion: '<S494>/Data Type Conversion8' */
16970 L4_MABX_B.RX_status_lb = (L4_MABX_B.SFunction1_o6_c != 0.0);
16971
16972 /* DataTypeConversion: '<S494>/Data Type Conversion9' */
16973 L4_MABX_B.RX_time_bq = L4_MABX_B.SFunction1_o7_nvh;
16974
16975 /* Outputs for Enabled SubSystem: '<S496>/B2' incorporates:
16976 * EnablePort: '<S497>/Enable'
16977 */
16978 /* Constant: '<S422>/Constant' */
16979 if (L4_MABX_P.Constant_Value_dx > 0.0) {
16980 /* S-Function (rti_commonblock): '<S497>/S-Function1' */
16981 /* This comment workarounds a code generation problem */
16982
16983 /* dSPACE RTICAN RX Message Block: "B2" Id:418451505 */
16984 {
16985 UInt32 *CAN_Msg;
16986 static dsfloat time_old = 0.0;
16987
16988 /* Read status and timestamp info (previous message) */
16989 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].timestamp !=
16990 time_old) {
16991 /* ... save timestamp info for the calculation of the RX status
16992 during the consecutive sample hit*/
16993 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].
16994 timestamp;
16995
16996 /* ... set the processed flag to one */
16997 L4_MABX_B.SFunction1_o3_ot = 1.0;
16998 L4_MABX_B.SFunction1_o4_el = (real_T)
16999 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].timestamp;
17000 L4_MABX_B.SFunction1_o5_bc = (real_T)
17001 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].deltatime;
17002 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].data;
17003
17004 /* Decode CAN message */
17005 {
17006 {
17007 rtican_Signal_t CAN_Sgn;
17008
17009 /* ...... "BrakeAppPressDemanded" (0|16, standard signal, unsigned int, little endian) */
17010 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17011 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
17012 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17013 L4_MABX_B.SFunction1_o1_a2 = 0.1 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17014
17015 /* ...... "BrakeSwitch2" (16|2, standard signal, unsigned int, little endian) */
17016 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17017 CAN_Sgn.UnsignedSgn &= 0x00000003;
17018 L4_MABX_B.SFunction1_o2_nk = ((real_T) CAN_Sgn.UnsignedSgn);
17019 }
17020 }
17021 } else {
17022 /* set RX status to 0 because no new message has arrived */
17023 L4_MABX_B.SFunction1_o3_ot = 0.0;
17024 }
17025 }
17026 }
17027
17028 /* End of Constant: '<S422>/Constant' */
17029 /* End of Outputs for SubSystem: '<S496>/B2' */
17030
17031 /* DataTypeConversion: '<S496>/Data Type Conversion10' */
17032 L4_MABX_B.RX_delta_time_e = L4_MABX_B.SFunction1_o5_bc;
17033
17034 /* DataTypeConversion: '<S496>/Data Type Conversion8' */
17035 L4_MABX_B.RX_status_k3 = (L4_MABX_B.SFunction1_o3_ot != 0.0);
17036
17037 /* DataTypeConversion: '<S496>/Data Type Conversion9' */
17038 L4_MABX_B.RX_time_a = L4_MABX_B.SFunction1_o4_el;
17039
17040 /* Outputs for Enabled SubSystem: '<S498>/Tracks' incorporates:
17041 * EnablePort: '<S499>/Enable'
17042 */
17043 /* Constant: '<S423>/Constant' */
17044 if (L4_MABX_P.Constant_Value_jqh) {
17045 /* S-Function (rti_commonblock): '<S499>/S-Function1' */
17046 /* This comment workarounds a code generation problem */
17047
17048 /* dSPACE RTICAN RX Message Block: "Tracks" Id:1635 */
17049 {
17050 UInt32 *CAN_Msg;
17051 static dsfloat time_old = 0.0;
17052
17053 /* Read status and timestamp info (previous message) */
17054 if (can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp !=
17055 time_old) {
17056 /* ... save timestamp info for the calculation of the RX status
17057 during the consecutive sample hit*/
17058 time_old = can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp;
17059
17060 /* ... set the processed flag to one */
17061 L4_MABX_B.SFunction1_o72 = 1.0;
17062 L4_MABX_B.SFunction1_o73 = (real_T)
17063 can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp;
17064 L4_MABX_B.SFunction1_o74 = (real_T)
17065 can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].deltatime;
17066 CAN_Msg = can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].data;
17067
17068 /* Decode CAN message */
17069 {
17070 {
17071 rtican_Signal_t CAN_Sgn;
17072 UInt32 modeSignal;
17073
17074 /* ...... "track_multiplexor" (56|8, mode signal, unsigned int, motorola back.) */
17075 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17076 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17077 L4_MABX_B.SFunction1_o71 = ((real_T) CAN_Sgn.UnsignedSgn);
17078 modeSignal = (UInt32) L4_MABX_B.SFunction1_o71;
17079 if (modeSignal == 4) {
17080 /* ...... "tr0_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17081 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17082 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17083 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17084 L4_MABX_B.SFunction1_o1_gr = ((real_T) CAN_Sgn.UnsignedSgn);
17085 }
17086
17087 if (modeSignal == 5) {
17088 /* ...... "tr0_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17089 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17090 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17091 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17092 if (CAN_Sgn.SignedSgn >> 15) {
17093 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17094 }
17095
17096 L4_MABX_B.SFunction1_o2_je = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17097 );
17098 }
17099
17100 if (modeSignal == 12) {
17101 /* ...... "tr1_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17102 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17103 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17104 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17105 L4_MABX_B.SFunction1_o3_dd = ((real_T) CAN_Sgn.UnsignedSgn);
17106 }
17107
17108 if (modeSignal == 13) {
17109 /* ...... "tr1_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17110 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17111 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17112 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17113 if (CAN_Sgn.SignedSgn >> 15) {
17114 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17115 }
17116
17117 L4_MABX_B.SFunction1_o4_ew = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17118 );
17119 }
17120
17121 if (modeSignal == 20) {
17122 /* ...... "tr2_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17123 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17124 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17125 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17126 L4_MABX_B.SFunction1_o5_ba = ((real_T) CAN_Sgn.UnsignedSgn);
17127 }
17128
17129 if (modeSignal == 21) {
17130 /* ...... "tr2_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17131 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17132 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17133 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17134 if (CAN_Sgn.SignedSgn >> 15) {
17135 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17136 }
17137
17138 L4_MABX_B.SFunction1_o6_di = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17139 );
17140 }
17141
17142 if (modeSignal == 28) {
17143 /* ...... "tr3_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17144 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17145 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17146 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17147 L4_MABX_B.SFunction1_o7_k3 = ((real_T) CAN_Sgn.UnsignedSgn);
17148 }
17149
17150 if (modeSignal == 29) {
17151 /* ...... "tr3_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17152 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17153 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17154 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17155 if (CAN_Sgn.SignedSgn >> 15) {
17156 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17157 }
17158
17159 L4_MABX_B.SFunction1_o8_nl = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17160 );
17161 }
17162
17163 if (modeSignal == 36) {
17164 /* ...... "tr4_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17165 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17166 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17167 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17168 L4_MABX_B.SFunction1_o9_ix = ((real_T) CAN_Sgn.UnsignedSgn);
17169 }
17170
17171 if (modeSignal == 37) {
17172 /* ...... "tr4_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17173 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17174 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17175 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17176 if (CAN_Sgn.SignedSgn >> 15) {
17177 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17178 }
17179
17180 L4_MABX_B.SFunction1_o10_g = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17181 );
17182 }
17183
17184 if (modeSignal == 44) {
17185 /* ...... "tr5_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17186 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17187 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17188 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17189 L4_MABX_B.SFunction1_o11_jp = ((real_T) CAN_Sgn.UnsignedSgn);
17190 }
17191
17192 if (modeSignal == 45) {
17193 /* ...... "tr5_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17194 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17195 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17196 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17197 if (CAN_Sgn.SignedSgn >> 15) {
17198 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17199 }
17200
17201 L4_MABX_B.SFunction1_o12_f = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17202 );
17203 }
17204
17205 if (modeSignal == 52) {
17206 /* ...... "tr6_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17207 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17208 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17209 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17210 L4_MABX_B.SFunction1_o13_ch = ((real_T) CAN_Sgn.UnsignedSgn);
17211 }
17212
17213 if (modeSignal == 53) {
17214 /* ...... "tr6_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17215 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17216 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17217 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17218 if (CAN_Sgn.SignedSgn >> 15) {
17219 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17220 }
17221
17222 L4_MABX_B.SFunction1_o14_c = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17223 );
17224 }
17225
17226 if (modeSignal == 60) {
17227 /* ...... "tr7_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17228 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17229 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17230 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17231 L4_MABX_B.SFunction1_o15_k = ((real_T) CAN_Sgn.UnsignedSgn);
17232 }
17233
17234 if (modeSignal == 61) {
17235 /* ...... "tr7_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17236 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17237 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17238 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17239 if (CAN_Sgn.SignedSgn >> 15) {
17240 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17241 }
17242
17243 L4_MABX_B.SFunction1_o16_p = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17244 );
17245 }
17246
17247 if (modeSignal == 68) {
17248 /* ...... "tr8_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17249 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17250 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17251 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17252 L4_MABX_B.SFunction1_o17_gz = ((real_T) CAN_Sgn.UnsignedSgn);
17253 }
17254
17255 if (modeSignal == 69) {
17256 /* ...... "tr8_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17257 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17258 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17259 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17260 if (CAN_Sgn.SignedSgn >> 15) {
17261 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17262 }
17263
17264 L4_MABX_B.SFunction1_o18_o = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17265 );
17266 }
17267
17268 if (modeSignal == 76) {
17269 /* ...... "tr9_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17270 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17271 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17272 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17273 L4_MABX_B.SFunction1_o19_h = ((real_T) CAN_Sgn.UnsignedSgn);
17274 }
17275
17276 if (modeSignal == 77) {
17277 /* ...... "tr9_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17278 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17279 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17280 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17281 if (CAN_Sgn.SignedSgn >> 15) {
17282 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17283 }
17284
17285 L4_MABX_B.SFunction1_o20_cm = 0.001 * ( ((real_T)
17286 CAN_Sgn.SignedSgn) );
17287 }
17288
17289 if (modeSignal == 6) {
17290 /* ...... "tr0_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17291 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17292 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17293 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17294 CAN_Sgn.SignedSgn &= 0x000003FF;
17295 if (CAN_Sgn.SignedSgn >> 9) {
17296 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17297 }
17298
17299 L4_MABX_B.SFunction1_o21_mr = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn)
17300 );
17301 }
17302
17303 if (modeSignal == 14) {
17304 /* ...... "tr1_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17305 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17306 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17307 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17308 CAN_Sgn.SignedSgn &= 0x000003FF;
17309 if (CAN_Sgn.SignedSgn >> 9) {
17310 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17311 }
17312
17313 L4_MABX_B.SFunction1_o22_lc = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn)
17314 );
17315 }
17316
17317 if (modeSignal == 22) {
17318 /* ...... "tr2_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17319 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17320 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17321 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17322 CAN_Sgn.SignedSgn &= 0x000003FF;
17323 if (CAN_Sgn.SignedSgn >> 9) {
17324 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17325 }
17326
17327 L4_MABX_B.SFunction1_o23_b = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17328 }
17329
17330 if (modeSignal == 30) {
17331 /* ...... "tr3_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17332 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17333 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17334 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17335 CAN_Sgn.SignedSgn &= 0x000003FF;
17336 if (CAN_Sgn.SignedSgn >> 9) {
17337 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17338 }
17339
17340 L4_MABX_B.SFunction1_o24_e = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17341 }
17342
17343 if (modeSignal == 38) {
17344 /* ...... "tr4_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17345 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17346 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17347 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17348 CAN_Sgn.SignedSgn &= 0x000003FF;
17349 if (CAN_Sgn.SignedSgn >> 9) {
17350 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17351 }
17352
17353 L4_MABX_B.SFunction1_o25_g = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17354 }
17355
17356 if (modeSignal == 46) {
17357 /* ...... "tr5_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17358 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17359 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17360 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17361 CAN_Sgn.SignedSgn &= 0x000003FF;
17362 if (CAN_Sgn.SignedSgn >> 9) {
17363 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17364 }
17365
17366 L4_MABX_B.SFunction1_o26_m = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17367 }
17368
17369 if (modeSignal == 54) {
17370 /* ...... "tr6_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17371 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17372 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17373 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17374 CAN_Sgn.SignedSgn &= 0x000003FF;
17375 if (CAN_Sgn.SignedSgn >> 9) {
17376 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17377 }
17378
17379 L4_MABX_B.SFunction1_o27_c = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17380 }
17381
17382 if (modeSignal == 62) {
17383 /* ...... "tr7_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17384 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17385 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17386 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17387 CAN_Sgn.SignedSgn &= 0x000003FF;
17388 if (CAN_Sgn.SignedSgn >> 9) {
17389 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17390 }
17391
17392 L4_MABX_B.SFunction1_o28_k = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17393 }
17394
17395 if (modeSignal == 70) {
17396 /* ...... "tr8_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17397 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17398 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17399 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17400 CAN_Sgn.SignedSgn &= 0x000003FF;
17401 if (CAN_Sgn.SignedSgn >> 9) {
17402 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17403 }
17404
17405 L4_MABX_B.SFunction1_o29 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17406 }
17407
17408 if (modeSignal == 78) {
17409 /* ...... "tr9_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17410 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17411 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17412 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17413 CAN_Sgn.SignedSgn &= 0x000003FF;
17414 if (CAN_Sgn.SignedSgn >> 9) {
17415 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17416 }
17417
17418 L4_MABX_B.SFunction1_o30 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17419 }
17420
17421 if (modeSignal == 4) {
17422 /* ...... "tr0_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17423 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17424 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17425 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17426 L4_MABX_B.SFunction1_o31 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17427 );
17428 }
17429
17430 if (modeSignal == 12) {
17431 /* ...... "tr1_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17432 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17433 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17434 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17435 L4_MABX_B.SFunction1_o32 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17436 );
17437 }
17438
17439 if (modeSignal == 20) {
17440 /* ...... "tr2_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17441 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17442 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17443 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17444 L4_MABX_B.SFunction1_o33 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17445 );
17446 }
17447
17448 if (modeSignal == 28) {
17449 /* ...... "tr3_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17450 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17451 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17452 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17453 L4_MABX_B.SFunction1_o34 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17454 );
17455 }
17456
17457 if (modeSignal == 36) {
17458 /* ...... "tr4_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17459 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17460 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17461 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17462 L4_MABX_B.SFunction1_o35 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17463 );
17464 }
17465
17466 if (modeSignal == 44) {
17467 /* ...... "tr5_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17468 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17469 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17470 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17471 L4_MABX_B.SFunction1_o36 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17472 );
17473 }
17474
17475 if (modeSignal == 52) {
17476 /* ...... "tr6_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17477 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17478 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17479 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17480 L4_MABX_B.SFunction1_o37 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17481 );
17482 }
17483
17484 if (modeSignal == 60) {
17485 /* ...... "tr7_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17486 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17487 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17488 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17489 L4_MABX_B.SFunction1_o38 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17490 );
17491 }
17492
17493 if (modeSignal == 68) {
17494 /* ...... "tr8_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17495 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17496 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17497 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17498 L4_MABX_B.SFunction1_o39 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17499 );
17500 }
17501
17502 if (modeSignal == 76) {
17503 /* ...... "tr9_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17504 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17505 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17506 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17507 L4_MABX_B.SFunction1_o40 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17508 );
17509 }
17510
17511 if (modeSignal == 6) {
17512 /* ...... "tr0_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17513 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17514 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17515 L4_MABX_B.SFunction1_o41 = 0.00392156862745098 * ( ((real_T)
17516 CAN_Sgn.UnsignedSgn) );
17517 }
17518
17519 if (modeSignal == 14) {
17520 /* ...... "tr1_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17521 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17522 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17523 L4_MABX_B.SFunction1_o42 = 0.00392156862745098 * ( ((real_T)
17524 CAN_Sgn.UnsignedSgn) );
17525 }
17526
17527 if (modeSignal == 22) {
17528 /* ...... "tr2_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17529 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17530 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17531 L4_MABX_B.SFunction1_o43 = 0.00392156862745098 * ( ((real_T)
17532 CAN_Sgn.UnsignedSgn) );
17533 }
17534
17535 if (modeSignal == 30) {
17536 /* ...... "tr3_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17537 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17538 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17539 L4_MABX_B.SFunction1_o44 = 0.00392156862745098 * ( ((real_T)
17540 CAN_Sgn.UnsignedSgn) );
17541 }
17542
17543 if (modeSignal == 38) {
17544 /* ...... "tr4_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17545 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17546 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17547 L4_MABX_B.SFunction1_o45 = 0.00392156862745098 * ( ((real_T)
17548 CAN_Sgn.UnsignedSgn) );
17549 }
17550
17551 if (modeSignal == 46) {
17552 /* ...... "tr5_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17553 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17554 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17555 L4_MABX_B.SFunction1_o46 = 0.00392156862745098 * ( ((real_T)
17556 CAN_Sgn.UnsignedSgn) );
17557 }
17558
17559 if (modeSignal == 54) {
17560 /* ...... "tr6_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17561 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17562 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17563 L4_MABX_B.SFunction1_o47 = 0.00392156862745098 * ( ((real_T)
17564 CAN_Sgn.UnsignedSgn) );
17565 }
17566
17567 if (modeSignal == 62) {
17568 /* ...... "tr7_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17569 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17570 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17571 L4_MABX_B.SFunction1_o48 = 0.00392156862745098 * ( ((real_T)
17572 CAN_Sgn.UnsignedSgn) );
17573 }
17574
17575 if (modeSignal == 70) {
17576 /* ...... "tr8_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17577 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17578 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17579 L4_MABX_B.SFunction1_o49 = 0.00392156862745098 * ( ((real_T)
17580 CAN_Sgn.UnsignedSgn) );
17581 }
17582
17583 if (modeSignal == 78) {
17584 /* ...... "tr9_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17585 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17586 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17587 L4_MABX_B.SFunction1_o50 = 0.00392156862745098 * ( ((real_T)
17588 CAN_Sgn.UnsignedSgn) );
17589 }
17590
17591 if (modeSignal == 4) {
17592 /* ...... "tr0_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17593 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17594 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17595 CAN_Sgn.SignedSgn &= 0x00003FFF;
17596 if (CAN_Sgn.SignedSgn >> 13) {
17597 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17598 }
17599
17600 L4_MABX_B.SFunction1_o51 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17601 }
17602
17603 if (modeSignal == 5) {
17604 /* ...... "tr0_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17605 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17606 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17607 L4_MABX_B.SFunction1_o52 = -8.8 + ( 0.05 * ( ((real_T)
17608 CAN_Sgn.UnsignedSgn) ) );
17609 }
17610
17611 if (modeSignal == 12) {
17612 /* ...... "tr1_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17613 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17614 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17615 CAN_Sgn.SignedSgn &= 0x00003FFF;
17616 if (CAN_Sgn.SignedSgn >> 13) {
17617 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17618 }
17619
17620 L4_MABX_B.SFunction1_o53 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17621 }
17622
17623 if (modeSignal == 13) {
17624 /* ...... "tr1_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17625 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17626 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17627 L4_MABX_B.SFunction1_o54 = -8.8 + ( 0.05 * ( ((real_T)
17628 CAN_Sgn.UnsignedSgn) ) );
17629 }
17630
17631 if (modeSignal == 20) {
17632 /* ...... "tr2_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17633 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17634 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17635 CAN_Sgn.SignedSgn &= 0x00003FFF;
17636 if (CAN_Sgn.SignedSgn >> 13) {
17637 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17638 }
17639
17640 L4_MABX_B.SFunction1_o55 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17641 }
17642
17643 if (modeSignal == 21) {
17644 /* ...... "tr2_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17645 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17646 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17647 L4_MABX_B.SFunction1_o56 = -8.8 + ( 0.05 * ( ((real_T)
17648 CAN_Sgn.UnsignedSgn) ) );
17649 }
17650
17651 if (modeSignal == 28) {
17652 /* ...... "tr3_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17653 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17654 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17655 CAN_Sgn.SignedSgn &= 0x00003FFF;
17656 if (CAN_Sgn.SignedSgn >> 13) {
17657 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17658 }
17659
17660 L4_MABX_B.SFunction1_o57 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17661 }
17662
17663 if (modeSignal == 29) {
17664 /* ...... "tr3_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17665 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17666 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17667 L4_MABX_B.SFunction1_o58 = -8.8 + ( 0.05 * ( ((real_T)
17668 CAN_Sgn.UnsignedSgn) ) );
17669 }
17670
17671 if (modeSignal == 36) {
17672 /* ...... "tr4_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17673 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17674 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17675 CAN_Sgn.SignedSgn &= 0x00003FFF;
17676 if (CAN_Sgn.SignedSgn >> 13) {
17677 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17678 }
17679
17680 L4_MABX_B.SFunction1_o59 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17681 }
17682
17683 if (modeSignal == 37) {
17684 /* ...... "tr4_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17685 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17686 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17687 L4_MABX_B.SFunction1_o60 = -8.8 + ( 0.05 * ( ((real_T)
17688 CAN_Sgn.UnsignedSgn) ) );
17689 }
17690
17691 if (modeSignal == 44) {
17692 /* ...... "tr5_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17693 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17694 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17695 CAN_Sgn.SignedSgn &= 0x00003FFF;
17696 if (CAN_Sgn.SignedSgn >> 13) {
17697 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17698 }
17699
17700 L4_MABX_B.SFunction1_o61 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17701 }
17702
17703 if (modeSignal == 45) {
17704 /* ...... "tr5_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17705 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17706 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17707 L4_MABX_B.SFunction1_o62 = -8.8 + ( 0.05 * ( ((real_T)
17708 CAN_Sgn.UnsignedSgn) ) );
17709 }
17710
17711 if (modeSignal == 52) {
17712 /* ...... "tr6_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17713 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17714 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17715 CAN_Sgn.SignedSgn &= 0x00003FFF;
17716 if (CAN_Sgn.SignedSgn >> 13) {
17717 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17718 }
17719
17720 L4_MABX_B.SFunction1_o63 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17721 }
17722
17723 if (modeSignal == 53) {
17724 /* ...... "tr6_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17725 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17726 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17727 L4_MABX_B.SFunction1_o64 = -8.8 + ( 0.05 * ( ((real_T)
17728 CAN_Sgn.UnsignedSgn) ) );
17729 }
17730
17731 if (modeSignal == 60) {
17732 /* ...... "tr7_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17733 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17734 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17735 CAN_Sgn.SignedSgn &= 0x00003FFF;
17736 if (CAN_Sgn.SignedSgn >> 13) {
17737 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17738 }
17739
17740 L4_MABX_B.SFunction1_o65 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17741 }
17742
17743 if (modeSignal == 61) {
17744 /* ...... "tr7_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17745 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17746 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17747 L4_MABX_B.SFunction1_o66 = -8.8 + ( 0.05 * ( ((real_T)
17748 CAN_Sgn.UnsignedSgn) ) );
17749 }
17750
17751 if (modeSignal == 68) {
17752 /* ...... "tr8_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17753 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17754 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17755 CAN_Sgn.SignedSgn &= 0x00003FFF;
17756 if (CAN_Sgn.SignedSgn >> 13) {
17757 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17758 }
17759
17760 L4_MABX_B.SFunction1_o67 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17761 }
17762
17763 if (modeSignal == 69) {
17764 /* ...... "tr8_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17765 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17766 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17767 L4_MABX_B.SFunction1_o68 = -8.8 + ( 0.05 * ( ((real_T)
17768 CAN_Sgn.UnsignedSgn) ) );
17769 }
17770
17771 if (modeSignal == 76) {
17772 /* ...... "tr9_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17773 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17774 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17775 CAN_Sgn.SignedSgn &= 0x00003FFF;
17776 if (CAN_Sgn.SignedSgn >> 13) {
17777 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17778 }
17779
17780 L4_MABX_B.SFunction1_o69 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17781 }
17782
17783 if (modeSignal == 77) {
17784 /* ...... "tr9_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17785 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17786 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17787 L4_MABX_B.SFunction1_o70 = -8.8 + ( 0.05 * ( ((real_T)
17788 CAN_Sgn.UnsignedSgn) ) );
17789 }
17790 }
17791 }
17792 } else {
17793 /* set RX status to 0 because no new message has arrived */
17794 L4_MABX_B.SFunction1_o72 = 0.0;
17795 }
17796 }
17797 }
17798
17799 /* End of Constant: '<S423>/Constant' */
17800 /* End of Outputs for SubSystem: '<S498>/Tracks' */
17801
17802 /* DataTypeConversion: '<S498>/Data Type Conversion10' */
17803 L4_MABX_B.Bendix_RADAR_Tracks_RX_delta_ti = L4_MABX_B.SFunction1_o74;
17804
17805 /* DataTypeConversion: '<S498>/Data Type Conversion8' */
17806 L4_MABX_B.Bendix_RADAR_Tracks_RX_status = (L4_MABX_B.SFunction1_o72 != 0.0);
17807
17808 /* DataTypeConversion: '<S498>/Data Type Conversion9' */
17809 L4_MABX_B.Bendix_RADAR_Tracks_RX_time = L4_MABX_B.SFunction1_o73;
17810
17811 /* DataTypeConversion: '<S500>/Data Type Conversion10' */
17812 L4_MABX_B.RX_delta_time_f = L4_MABX_B.SFunction1_o23_d;
17813
17814 /* DataTypeConversion: '<S500>/Data Type Conversion8' */
17815 L4_MABX_B.RX_status_n = (L4_MABX_B.SFunction1_o21_bo != 0.0);
17816
17817 /* DataTypeConversion: '<S500>/Data Type Conversion9' */
17818 L4_MABX_B.RX_time_f = L4_MABX_B.SFunction1_o22_nv;
17819
17820 /* DataTypeConversion: '<S502>/Data Type Conversion10' */
17821 L4_MABX_B.RX_delta_time_nw = L4_MABX_B.SFunction1_o23_o;
17822
17823 /* DataTypeConversion: '<S502>/Data Type Conversion8' */
17824 L4_MABX_B.RX_status_nq = (L4_MABX_B.SFunction1_o21_m != 0.0);
17825
17826 /* DataTypeConversion: '<S502>/Data Type Conversion9' */
17827 L4_MABX_B.RX_time_j = L4_MABX_B.SFunction1_o22_lf;
17828
17829 /* Switch: '<S504>/Switch' */
17830 if (L4_MABX_B.RX_status_i) {
17831 L4_MABX_B.RX_status_o = L4_MABX_B.RX_status_i;
17832 } else {
17833 /* DataTypeConversion: '<S504>/Data Type Conversion1' */
17834 L4_MABX_B.RX_status_kq = (L4_MABX_B.SFunction1_o5_juk != 0.0);
17835 L4_MABX_B.RX_status_o = L4_MABX_B.RX_status_kq;
17836 }
17837
17838 if (L4_MABX_B.RX_status_i) {
17839 /* DataTypeConversion: '<S504>/Data Type Conversion9' */
17840 L4_MABX_B.RX_time_oq = L4_MABX_B.SFunction1_o6_kl;
17841 L4_MABX_B.RX_time_k = L4_MABX_B.RX_time_oq;
17842
17843 /* DataTypeConversion: '<S504>/Data Type Conversion10' */
17844 L4_MABX_B.RX_delta_time_ln = L4_MABX_B.SFunction1_o7_ct;
17845 L4_MABX_B.RX_delta_time_m1 = L4_MABX_B.RX_delta_time_ln;
17846 } else {
17847 /* DataTypeConversion: '<S504>/Data Type Conversion2' */
17848 L4_MABX_B.RX_time_hv = L4_MABX_B.SFunction1_o6_fvx;
17849 L4_MABX_B.RX_time_k = L4_MABX_B.RX_time_hv;
17850
17851 /* DataTypeConversion: '<S504>/Data Type Conversion3' */
17852 L4_MABX_B.RX_delta_time_fj = L4_MABX_B.SFunction1_o7_jc;
17853 L4_MABX_B.RX_delta_time_m1 = L4_MABX_B.RX_delta_time_fj;
17854 }
17855
17856 /* DataTypeConversion: '<S507>/Data Type Conversion10' */
17857 L4_MABX_B.RX_delta_time_bj = L4_MABX_B.SFunction1_o4_ev;
17858
17859 /* DataTypeConversion: '<S507>/Data Type Conversion8' */
17860 L4_MABX_B.RX_status_g = (L4_MABX_B.SFunction1_o2_hd != 0.0);
17861
17862 /* DataTypeConversion: '<S507>/Data Type Conversion9' */
17863 L4_MABX_B.RX_time_m = L4_MABX_B.SFunction1_o3_ac;
17864
17865 /* Outputs for Enabled SubSystem: '<S509>/EBC1_0B' incorporates:
17866 * EnablePort: '<S510>/Enable'
17867 */
17868 /* Constant: '<S428>/Constant1' */
17869 if (L4_MABX_P.Constant1_Value_fc) {
17870 /* S-Function (rti_commonblock): '<S510>/S-Function1' */
17871 /* This comment workarounds a code generation problem */
17872
17873 /* dSPACE RTICAN RX Message Block: "EBC1_0B" Id:418382091 */
17874 {
17875 UInt32 *CAN_Msg;
17876 static dsfloat time_old = 0.0;
17877
17878 /* Read status and timestamp info (previous message) */
17879 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].timestamp !=
17880 time_old) {
17881 /* ... save timestamp info for the calculation of the RX status
17882 during the consecutive sample hit*/
17883 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].
17884 timestamp;
17885
17886 /* ... set the processed flag to one */
17887 L4_MABX_B.SFunction1_o23_j = 1.0;
17888 L4_MABX_B.SFunction1_o24_b = (real_T)
17889 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].timestamp;
17890 L4_MABX_B.SFunction1_o25_cl = (real_T)
17891 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].deltatime;
17892 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].data;
17893
17894 /* Decode CAN message */
17895 {
17896 {
17897 rtican_Signal_t CAN_Sgn;
17898
17899 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
17900 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17901 CAN_Sgn.UnsignedSgn &= 0x00000003;
17902 L4_MABX_B.SFunction1_o1_kk = ((real_T) CAN_Sgn.UnsignedSgn);
17903
17904 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
17905 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17906 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17907 CAN_Sgn.UnsignedSgn &= 0x00000003;
17908 L4_MABX_B.SFunction1_o2_ev = ((real_T) CAN_Sgn.UnsignedSgn);
17909
17910 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
17911 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17912 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17913 CAN_Sgn.UnsignedSgn &= 0x00000003;
17914 L4_MABX_B.SFunction1_o3_htk = ((real_T) CAN_Sgn.UnsignedSgn);
17915
17916 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
17917 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17918 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17919 CAN_Sgn.UnsignedSgn &= 0x00000003;
17920 L4_MABX_B.SFunction1_o4_nw = ((real_T) CAN_Sgn.UnsignedSgn);
17921
17922 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
17923 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
17924 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17925 L4_MABX_B.SFunction1_o5_pj = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17926
17927 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
17928 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17929 CAN_Sgn.UnsignedSgn &= 0x00000003;
17930 L4_MABX_B.SFunction1_o6_j4 = ((real_T) CAN_Sgn.UnsignedSgn);
17931
17932 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
17933 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17934 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17935 CAN_Sgn.UnsignedSgn &= 0x00000003;
17936 L4_MABX_B.SFunction1_o7_p0 = ((real_T) CAN_Sgn.UnsignedSgn);
17937
17938 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
17939 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17940 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17941 CAN_Sgn.UnsignedSgn &= 0x00000003;
17942 L4_MABX_B.SFunction1_o8_jv = ((real_T) CAN_Sgn.UnsignedSgn);
17943
17944 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
17945 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17946 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17947 CAN_Sgn.UnsignedSgn &= 0x00000003;
17948 L4_MABX_B.SFunction1_o9_lq = ((real_T) CAN_Sgn.UnsignedSgn);
17949
17950 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
17951 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17952 CAN_Sgn.UnsignedSgn &= 0x00000003;
17953 L4_MABX_B.SFunction1_o10_ar = ((real_T) CAN_Sgn.UnsignedSgn);
17954
17955 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
17956 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17957 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17958 CAN_Sgn.UnsignedSgn &= 0x00000003;
17959 L4_MABX_B.SFunction1_o11_ic = ((real_T) CAN_Sgn.UnsignedSgn);
17960
17961 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
17962 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17963 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17964 CAN_Sgn.UnsignedSgn &= 0x00000003;
17965 L4_MABX_B.SFunction1_o12_h = ((real_T) CAN_Sgn.UnsignedSgn);
17966
17967 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
17968 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17969 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17970 CAN_Sgn.UnsignedSgn &= 0x00000003;
17971 L4_MABX_B.SFunction1_o13_o = ((real_T) CAN_Sgn.UnsignedSgn);
17972
17973 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
17974 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17975 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17976 L4_MABX_B.SFunction1_o14_es = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17977 );
17978
17979 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
17980 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17981 CAN_Sgn.UnsignedSgn &= 0x00000003;
17982 L4_MABX_B.SFunction1_o15_f = ((real_T) CAN_Sgn.UnsignedSgn);
17983
17984 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
17985 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17986 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17987 CAN_Sgn.UnsignedSgn &= 0x00000003;
17988 L4_MABX_B.SFunction1_o16_c = ((real_T) CAN_Sgn.UnsignedSgn);
17989
17990 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
17991 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17992 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17993 CAN_Sgn.UnsignedSgn &= 0x00000003;
17994 L4_MABX_B.SFunction1_o17_h = ((real_T) CAN_Sgn.UnsignedSgn);
17995
17996 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
17997 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17998 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17999 CAN_Sgn.UnsignedSgn &= 0x00000003;
18000 L4_MABX_B.SFunction1_o18_l = ((real_T) CAN_Sgn.UnsignedSgn);
18001
18002 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
18003 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18004 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18005 L4_MABX_B.SFunction1_o19_c = ((real_T) CAN_Sgn.UnsignedSgn);
18006
18007 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
18008 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
18009 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18010 CAN_Sgn.UnsignedSgn &= 0x00000003;
18011 L4_MABX_B.SFunction1_o20_o = ((real_T) CAN_Sgn.UnsignedSgn);
18012
18013 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
18014 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
18015 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18016 CAN_Sgn.UnsignedSgn &= 0x00000003;
18017 L4_MABX_B.SFunction1_o21_g = ((real_T) CAN_Sgn.UnsignedSgn);
18018
18019 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
18020 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
18021 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
18022 CAN_Sgn.UnsignedSgn &= 0x00000003;
18023 L4_MABX_B.SFunction1_o22_n = ((real_T) CAN_Sgn.UnsignedSgn);
18024 }
18025 }
18026 } else {
18027 /* set RX status to 0 because no new message has arrived */
18028 L4_MABX_B.SFunction1_o23_j = 0.0;
18029 }
18030 }
18031 }
18032
18033 /* End of Constant: '<S428>/Constant1' */
18034 /* End of Outputs for SubSystem: '<S509>/EBC1_0B' */
18035
18036 /* DataTypeConversion: '<S509>/Data Type Conversion10' */
18037 L4_MABX_B.RX_delta_time_i = L4_MABX_B.SFunction1_o25_cl;
18038
18039 /* DataTypeConversion: '<S509>/Data Type Conversion8' */
18040 L4_MABX_B.RX_status_gj = (L4_MABX_B.SFunction1_o23_j != 0.0);
18041
18042 /* DataTypeConversion: '<S509>/Data Type Conversion9' */
18043 L4_MABX_B.RX_time_l = L4_MABX_B.SFunction1_o24_b;
18044
18045 /* DataTypeConversion: '<S511>/Data Type Conversion10' */
18046 L4_MABX_B.RX_delta_time_b1 = L4_MABX_B.SFunction1_o25_c;
18047
18048 /* DataTypeConversion: '<S511>/Data Type Conversion8' */
18049 L4_MABX_B.RX_status_a = (L4_MABX_B.SFunction1_o23_n != 0.0);
18050
18051 /* DataTypeConversion: '<S511>/Data Type Conversion9' */
18052 L4_MABX_B.RX_time_lm = L4_MABX_B.SFunction1_o24_p;
18053
18054 /* DataTypeConversion: '<S513>/Data Type Conversion10' */
18055 L4_MABX_B.RX_delta_time_eu = L4_MABX_B.SFunction1_o10_a;
18056
18057 /* DataTypeConversion: '<S513>/Data Type Conversion8' */
18058 L4_MABX_B.RX_status_ad = (L4_MABX_B.SFunction1_o8_nv != 0.0);
18059
18060 /* DataTypeConversion: '<S513>/Data Type Conversion9' */
18061 L4_MABX_B.RX_time_d1 = L4_MABX_B.SFunction1_o9_a2;
18062
18063 /* DataTypeConversion: '<S560>/Data Type Conversion10' */
18064 L4_MABX_B.RX_delta_time_i4 = L4_MABX_B.SFunction1_o11_n1;
18065
18066 /* DataTypeConversion: '<S560>/Data Type Conversion8' */
18067 L4_MABX_B.RX_status_aq = (L4_MABX_B.SFunction1_o9_c != 0.0);
18068
18069 /* DataTypeConversion: '<S560>/Data Type Conversion9' */
18070 L4_MABX_B.RX_time_c = L4_MABX_B.SFunction1_o10_e;
18071
18072 /* Outputs for Enabled SubSystem: '<S562>/EEC2_001' incorporates:
18073 * EnablePort: '<S563>/Enable'
18074 */
18075 /* Constant: '<S433>/Enable_RX_EEC2_00' */
18076 if (L4_MABX_P.Enable_RX_EEC2_00_Value) {
18077 /* S-Function (rti_commonblock): '<S563>/S-Function1' */
18078 /* This comment workarounds a code generation problem */
18079
18080 /* dSPACE RTICAN RX Message Block: "EEC2_00" Id:217056000 */
18081 {
18082 UInt32 *CAN_Msg;
18083 static dsfloat time_old = 0.0;
18084
18085 /* Read status and timestamp info (previous message) */
18086 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].timestamp !=
18087 time_old) {
18088 /* ... save timestamp info for the calculation of the RX status
18089 during the consecutive sample hit*/
18090 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].
18091 timestamp;
18092
18093 /* ... set the processed flag to one */
18094 L4_MABX_B.SFunction1_o15_b = 1.0;
18095 L4_MABX_B.SFunction1_o16_b = (real_T)
18096 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].timestamp;
18097 L4_MABX_B.SFunction1_o17_g = (real_T)
18098 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].deltatime;
18099 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].data;
18100
18101 /* Decode CAN message */
18102 {
18103 {
18104 rtican_Signal_t CAN_Sgn;
18105
18106 /* ...... "SPN558_AccelPed1LowIdlSwitch" (0|2, standard signal, unsigned int, little endian) */
18107 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18108 CAN_Sgn.UnsignedSgn &= 0x00000003;
18109 L4_MABX_B.SFunction1_o1_n1 = ((real_T) CAN_Sgn.UnsignedSgn);
18110
18111 /* ...... "SPN559_AccelPedKickdownSw" (2|2, standard signal, unsigned int, little endian) */
18112 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18113 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18114 CAN_Sgn.UnsignedSgn &= 0x00000003;
18115 L4_MABX_B.SFunction1_o2_lq = ((real_T) CAN_Sgn.UnsignedSgn);
18116
18117 /* ...... "SPN1437_RoadSpeedLimitStatus" (4|2, standard signal, unsigned int, little endian) */
18118 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18119 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18120 CAN_Sgn.UnsignedSgn &= 0x00000003;
18121 L4_MABX_B.SFunction1_o3_is = ((real_T) CAN_Sgn.UnsignedSgn);
18122
18123 /* ...... "SPN2970_AccelPed2LowIdlSwitch" (6|2, standard signal, unsigned int, little endian) */
18124 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18125 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
18126 CAN_Sgn.UnsignedSgn &= 0x00000003;
18127 L4_MABX_B.SFunction1_o4_mo = ((real_T) CAN_Sgn.UnsignedSgn);
18128
18129 /* ...... "SPN91_AccelPedPos1" (8|8, standard signal, unsigned int, little endian) */
18130 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
18131 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18132 L4_MABX_B.SFunction1_o5_nq = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18133
18134 /* ...... "SPN92_EngPercLoadAtCurrSpd" (16|8, standard signal, unsigned int, little endian) */
18135 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18136 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18137 L4_MABX_B.SFunction1_o6_oma = ((real_T) CAN_Sgn.UnsignedSgn);
18138
18139 /* ...... "SPN974_RemAccelPedalPosition" (24|8, standard signal, unsigned int, little endian) */
18140 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18141 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18142 L4_MABX_B.SFunction1_o7_ll = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18143
18144 /* ...... "SPN29_AccelPedPos2" (32|8, standard signal, unsigned int, little endian) */
18145 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
18146 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18147 L4_MABX_B.SFunction1_o8_hh = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18148
18149 /* ...... "SPN2979_VehAccelRateLimStatus" (40|2, standard signal, unsigned int, little endian) */
18150 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18151 CAN_Sgn.UnsignedSgn &= 0x00000003;
18152 L4_MABX_B.SFunction1_o9_lu = ((real_T) CAN_Sgn.UnsignedSgn);
18153
18154 /* ...... "SPN5021_MomEngMaxPwrEnFdbk" (42|2, standard signal, unsigned int, little endian) */
18155 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18156 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18157 CAN_Sgn.UnsignedSgn &= 0x00000003;
18158 L4_MABX_B.SFunction1_o10_h = ((real_T) CAN_Sgn.UnsignedSgn);
18159
18160 /* ...... "SPN5399_DPFThermMgmtActive" (44|2, standard signal, unsigned int, little endian) */
18161 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18162 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18163 CAN_Sgn.UnsignedSgn &= 0x00000003;
18164 L4_MABX_B.SFunction1_o11_i = ((real_T) CAN_Sgn.UnsignedSgn);
18165
18166 /* ...... "SPN5400_SCRThermMgmtActive" (46|2, standard signal, unsigned int, little endian) */
18167 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18168 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
18169 CAN_Sgn.UnsignedSgn &= 0x00000003;
18170 L4_MABX_B.SFunction1_o12_a = ((real_T) CAN_Sgn.UnsignedSgn);
18171
18172 /* ...... "SPN3357_ActMaxAvailEngPercTrq" (48|8, standard signal, unsigned int, little endian) */
18173 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18174 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18175 L4_MABX_B.SFunction1_o13_c = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18176
18177 /* ...... "SPN5398_EstPumpingPercentTorque" (56|8, standard signal, unsigned int, little endian) */
18178 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
18179 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18180 L4_MABX_B.SFunction1_o14_j = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
18181 );
18182 }
18183 }
18184 } else {
18185 /* set RX status to 0 because no new message has arrived */
18186 L4_MABX_B.SFunction1_o15_b = 0.0;
18187 }
18188 }
18189 }
18190
18191 /* End of Constant: '<S433>/Enable_RX_EEC2_00' */
18192 /* End of Outputs for SubSystem: '<S562>/EEC2_001' */
18193
18194 /* DataTypeConversion: '<S562>/Data Type Conversion10' */
18195 L4_MABX_B.RX_delta_time_j5 = L4_MABX_B.SFunction1_o17_g;
18196
18197 /* DataTypeConversion: '<S562>/Data Type Conversion8' */
18198 L4_MABX_B.RX_status_g5 = (L4_MABX_B.SFunction1_o15_b != 0.0);
18199
18200 /* DataTypeConversion: '<S562>/Data Type Conversion9' */
18201 L4_MABX_B.RX_time_ah = L4_MABX_B.SFunction1_o16_b;
18202
18203 /* DataTypeConversion: '<S564>/Data Type Conversion10' */
18204 L4_MABX_B.RX_delta_time_g = L4_MABX_B.SFunction1_o5_m;
18205
18206 /* DataTypeConversion: '<S564>/Data Type Conversion8' */
18207 L4_MABX_B.RX_status_af = (L4_MABX_B.SFunction1_o3_ex != 0.0);
18208
18209 /* DataTypeConversion: '<S564>/Data Type Conversion9' */
18210 L4_MABX_B.RX_time_e = L4_MABX_B.SFunction1_o4_mu;
18211
18212 /* DataTypeConversion: '<S566>/Data Type Conversion10' */
18213 L4_MABX_B.RX_delta_time_fp = L4_MABX_B.SFunction1_o6_dg;
18214
18215 /* DataTypeConversion: '<S566>/Data Type Conversion8' */
18216 L4_MABX_B.RX_status_g0 = (L4_MABX_B.SFunction1_o4_m2 != 0.0);
18217
18218 /* DataTypeConversion: '<S566>/Data Type Conversion9' */
18219 L4_MABX_B.RX_time_h = L4_MABX_B.SFunction1_o5_ks;
18220
18221 /* Switch: '<S568>/Switch' */
18222 if (L4_MABX_B.RX_status_k) {
18223 L4_MABX_B.SID_e = L4_MABX_B.SFunction1_o1_mz;
18224 L4_MABX_B.SetMode = L4_MABX_B.SFunction1_o2_gm;
18225 L4_MABX_B.OpMode = L4_MABX_B.SFunction1_o3_ht;
18226 L4_MABX_B.VDOP = L4_MABX_B.SFunction1_o5_o;
18227 L4_MABX_B.TDOP = L4_MABX_B.SFunction1_o6_e;
18228 L4_MABX_B.RX_status_f = L4_MABX_B.RX_status_k;
18229 } else {
18230 L4_MABX_B.SID_e = L4_MABX_B.SFunction1_o1_h1;
18231 L4_MABX_B.SetMode = L4_MABX_B.SFunction1_o2_eu;
18232 L4_MABX_B.OpMode = L4_MABX_B.SFunction1_o3_fe;
18233 L4_MABX_B.VDOP = L4_MABX_B.SFunction1_o5_n;
18234 L4_MABX_B.TDOP = L4_MABX_B.SFunction1_o6_gg;
18235
18236 /* DataTypeConversion: '<S568>/Data Type Conversion3' */
18237 L4_MABX_B.RX_status_fu = (L4_MABX_B.SFunction1_o7_m != 0.0);
18238 L4_MABX_B.RX_status_f = L4_MABX_B.RX_status_fu;
18239 }
18240
18241 if (L4_MABX_B.RX_status_k) {
18242 /* DataTypeConversion: '<S568>/Data Type Conversion9' */
18243 L4_MABX_B.RX_time_im = L4_MABX_B.SFunction1_o8_k;
18244 L4_MABX_B.RX_time_m2 = L4_MABX_B.RX_time_im;
18245
18246 /* DataTypeConversion: '<S568>/Data Type Conversion10' */
18247 L4_MABX_B.RX_delta_time_dy = L4_MABX_B.SFunction1_o9_lf;
18248 L4_MABX_B.RX_delta_time_d = L4_MABX_B.RX_delta_time_dy;
18249 } else {
18250 /* DataTypeConversion: '<S568>/Data Type Conversion2' */
18251 L4_MABX_B.RX_time_bt = L4_MABX_B.SFunction1_o8_ik;
18252 L4_MABX_B.RX_time_m2 = L4_MABX_B.RX_time_bt;
18253
18254 /* DataTypeConversion: '<S568>/Data Type Conversion1' */
18255 L4_MABX_B.RX_delta_time_c = L4_MABX_B.SFunction1_o9_hf;
18256 L4_MABX_B.RX_delta_time_d = L4_MABX_B.RX_delta_time_c;
18257 }
18258
18259 /* DataTypeConversion: '<S571>/Data Type Conversion10' */
18260 L4_MABX_B.RX_delta_time_hw = L4_MABX_B.SFunction1_o7_k;
18261
18262 /* DataTypeConversion: '<S571>/Data Type Conversion8' */
18263 L4_MABX_B.RX_status_e = (L4_MABX_B.SFunction1_o5_lx != 0.0);
18264
18265 /* DataTypeConversion: '<S571>/Data Type Conversion9' */
18266 L4_MABX_B.RX_time_jy = L4_MABX_B.SFunction1_o6_om3;
18267
18268 /* Switch: '<S438>/Switch' */
18269 if (L4_MABX_B.Operator_iv) {
18270 ReAX_EchoedSteerWheelPos = L4_MABX_B.SFunction1_o2_gpw;
18271
18272 /* DataTypeConversion: '<S573>/Data Type Conversion8' */
18273 L4_MABX_B.RX_status_ao = (L4_MABX_B.SFunction1_o3_ds != 0.0);
18274 L4_MABX_B.RX_status_ko = L4_MABX_B.RX_status_ao;
18275
18276 /* DataTypeConversion: '<S573>/Data Type Conversion9' */
18277 L4_MABX_B.RX_time_b0 = L4_MABX_B.SFunction1_o4_cn;
18278 L4_MABX_B.RX_time_f4 = L4_MABX_B.RX_time_b0;
18279
18280 /* DataTypeConversion: '<S573>/Data Type Conversion10' */
18281 L4_MABX_B.RX_delta_time_bn = L4_MABX_B.SFunction1_o5_ju;
18282 L4_MABX_B.RX_delta_time_l = L4_MABX_B.RX_delta_time_bn;
18283 } else {
18284 ReAX_EchoedSteerWheelPos = L4_MABX_B.SFunction1_o2_nw;
18285
18286 /* DataTypeConversion: '<S574>/Data Type Conversion8' */
18287 L4_MABX_B.RX_status_oo = (L4_MABX_B.SFunction1_o3_cb != 0.0);
18288 L4_MABX_B.RX_status_ko = L4_MABX_B.RX_status_oo;
18289
18290 /* DataTypeConversion: '<S574>/Data Type Conversion9' */
18291 L4_MABX_B.RX_time_py = L4_MABX_B.SFunction1_o4_ei;
18292 L4_MABX_B.RX_time_f4 = L4_MABX_B.RX_time_py;
18293
18294 /* DataTypeConversion: '<S574>/Data Type Conversion10' */
18295 L4_MABX_B.RX_delta_time_jb = L4_MABX_B.SFunction1_o5_dl;
18296 L4_MABX_B.RX_delta_time_l = L4_MABX_B.RX_delta_time_jb;
18297 }
18298
18299 /* RelationalOperator: '<S610>/Operator' incorporates:
18300 * Constant: '<S441>/Constant'
18301 * Constant: '<S606>/Constant'
18302 */
18303 L4_MABX_B.Operator_al = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18304 L4_MABX_P.Constant_Value_ld);
18305
18306 /* Outputs for Enabled SubSystem: '<S603>/CAN_TYPE1_RX_M1_C1' incorporates:
18307 * EnablePort: '<S607>/Enable'
18308 */
18309 if (L4_MABX_B.Operator_al) {
18310 /* S-Function (rti_commonblock): '<S607>/S-Function1' */
18311 /* This comment workarounds a code generation problem */
18312
18313 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18314 {
18315 UInt32 *CAN_Msg;
18316 static dsfloat time_old = 0.0;
18317
18318 /* Read status and timestamp info (previous message) */
18319 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].timestamp !=
18320 time_old) {
18321 /* ... save timestamp info for the calculation of the RX status
18322 during the consecutive sample hit*/
18323 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].
18324 timestamp;
18325
18326 /* ... set the processed flag to one */
18327 L4_MABX_B.SFunction1_o3_or = 1.0;
18328 L4_MABX_B.SFunction1_o4_dd = (real_T)
18329 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].timestamp;
18330 L4_MABX_B.SFunction1_o5_lp = (real_T)
18331 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].deltatime;
18332 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].data;
18333
18334 /* Decode CAN message */
18335 {
18336 {
18337 rtican_Signal_t CAN_Sgn;
18338
18339 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18340 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18341 CAN_Sgn.UnsignedSgn &= 0x00000003;
18342 L4_MABX_B.SFunction1_o1_kt = ((real_T) CAN_Sgn.UnsignedSgn);
18343
18344 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18345 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18346 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18347 CAN_Sgn.UnsignedSgn &= 0x00000003;
18348 L4_MABX_B.SFunction1_o2_k1 = ((real_T) CAN_Sgn.UnsignedSgn);
18349 }
18350 }
18351 } else {
18352 /* set RX status to 0 because no new message has arrived */
18353 L4_MABX_B.SFunction1_o3_or = 0.0;
18354 }
18355 }
18356 }
18357
18358 /* End of Outputs for SubSystem: '<S603>/CAN_TYPE1_RX_M1_C1' */
18359
18360 /* RelationalOperator: '<S611>/Operator' incorporates:
18361 * Constant: '<S441>/Constant'
18362 * Constant: '<S606>/Constant1'
18363 */
18364 L4_MABX_B.Operator_hp = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18365 L4_MABX_P.Constant1_Value_nyo);
18366
18367 /* Outputs for Enabled SubSystem: '<S604>/CAN_TYPE1_RX_M1_C2' incorporates:
18368 * EnablePort: '<S608>/Enable'
18369 */
18370 if (L4_MABX_B.Operator_hp) {
18371 /* S-Function (rti_commonblock): '<S608>/S-Function1' */
18372 /* This comment workarounds a code generation problem */
18373
18374 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18375 {
18376 UInt32 *CAN_Msg;
18377 static dsfloat time_old = 0.0;
18378
18379 /* Read status and timestamp info (previous message) */
18380 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].timestamp !=
18381 time_old) {
18382 /* ... save timestamp info for the calculation of the RX status
18383 during the consecutive sample hit*/
18384 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].
18385 timestamp;
18386
18387 /* ... set the processed flag to one */
18388 L4_MABX_B.SFunction1_o3_g1 = 1.0;
18389 L4_MABX_B.SFunction1_o4_ae = (real_T)
18390 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].timestamp;
18391 L4_MABX_B.SFunction1_o5_e = (real_T)
18392 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].deltatime;
18393 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].data;
18394
18395 /* Decode CAN message */
18396 {
18397 {
18398 rtican_Signal_t CAN_Sgn;
18399
18400 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18401 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18402 CAN_Sgn.UnsignedSgn &= 0x00000003;
18403 L4_MABX_B.SFunction1_o1_cf = ((real_T) CAN_Sgn.UnsignedSgn);
18404
18405 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18406 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18407 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18408 CAN_Sgn.UnsignedSgn &= 0x00000003;
18409 L4_MABX_B.SFunction1_o2_f3 = ((real_T) CAN_Sgn.UnsignedSgn);
18410 }
18411 }
18412 } else {
18413 /* set RX status to 0 because no new message has arrived */
18414 L4_MABX_B.SFunction1_o3_g1 = 0.0;
18415 }
18416 }
18417 }
18418
18419 /* End of Outputs for SubSystem: '<S604>/CAN_TYPE1_RX_M1_C2' */
18420
18421 /* RelationalOperator: '<S612>/Operator' incorporates:
18422 * Constant: '<S441>/Constant'
18423 * Constant: '<S606>/Constant2'
18424 */
18425 L4_MABX_B.Operator_lg = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18426 L4_MABX_P.Constant2_Value_ij);
18427
18428 /* Outputs for Enabled SubSystem: '<S605>/CAN_TYPE1_RX_M2_C1' incorporates:
18429 * EnablePort: '<S609>/Enable'
18430 */
18431 if (L4_MABX_B.Operator_lg) {
18432 /* S-Function (rti_commonblock): '<S609>/S-Function1' */
18433 /* This comment workarounds a code generation problem */
18434
18435 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18436 {
18437 UInt32 *CAN_Msg;
18438 static dsfloat time_old = 0.0;
18439
18440 /* Read status and timestamp info (previous message) */
18441 if (can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].timestamp !=
18442 time_old) {
18443 /* ... save timestamp info for the calculation of the RX status
18444 during the consecutive sample hit*/
18445 time_old = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].
18446 timestamp;
18447
18448 /* ... set the processed flag to one */
18449 L4_MABX_B.SFunction1_o3_c = 1.0;
18450 L4_MABX_B.SFunction1_o4_dp = (real_T)
18451 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].timestamp;
18452 L4_MABX_B.SFunction1_o5_ku = (real_T)
18453 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].deltatime;
18454 CAN_Msg = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].data;
18455
18456 /* Decode CAN message */
18457 {
18458 {
18459 rtican_Signal_t CAN_Sgn;
18460
18461 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18462 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18463 CAN_Sgn.UnsignedSgn &= 0x00000003;
18464 L4_MABX_B.SFunction1_o1_be = ((real_T) CAN_Sgn.UnsignedSgn);
18465
18466 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18467 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18468 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18469 CAN_Sgn.UnsignedSgn &= 0x00000003;
18470 L4_MABX_B.SFunction1_o2_gi = ((real_T) CAN_Sgn.UnsignedSgn);
18471 }
18472 }
18473 } else {
18474 /* set RX status to 0 because no new message has arrived */
18475 L4_MABX_B.SFunction1_o3_c = 0.0;
18476 }
18477 }
18478 }
18479
18480 /* End of Outputs for SubSystem: '<S605>/CAN_TYPE1_RX_M2_C1' */
18481
18482 /* DataTypeConversion: '<S605>/Data Type Conversion' */
18483 PositionFinalLimited = L4_MABX_B.SFunction1_o1_be;
18484 if (PositionFinalLimited < 256.0) {
18485 if (PositionFinalLimited >= 0.0) {
18486 starting_index = (uint8_T)PositionFinalLimited;
18487 } else {
18488 starting_index = 0U;
18489 }
18490 } else {
18491 starting_index = MAX_uint8_T;
18492 }
18493
18494 L4_MABX_B.DataTypeConversion_dt = starting_index;
18495
18496 /* End of DataTypeConversion: '<S605>/Data Type Conversion' */
18497
18498 /* DataTypeConversion: '<S605>/Data Type Conversion2' */
18499 L4_MABX_B.EPBPCMInhibitStatusFeedback = (ENUM_XPR_FEEDBACK_T)
18500 L4_MABX_B.DataTypeConversion_dt;
18501
18502 /* MultiPortSwitch: '<S441>/Multiport_Switch' incorporates:
18503 * Constant: '<S441>/Constant'
18504 */
18505 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18506 case ENUM_CAN_RX_T_RX_CAN_1:
18507 /* DataTypeConversion: '<S603>/Data Type Conversion' */
18508 PositionFinalLimited = L4_MABX_B.SFunction1_o1_kt;
18509 if (PositionFinalLimited < 256.0) {
18510 if (PositionFinalLimited >= 0.0) {
18511 starting_index = (uint8_T)PositionFinalLimited;
18512 } else {
18513 starting_index = 0U;
18514 }
18515 } else {
18516 starting_index = MAX_uint8_T;
18517 }
18518
18519 L4_MABX_B.DataTypeConversion_ev = starting_index;
18520
18521 /* End of DataTypeConversion: '<S603>/Data Type Conversion' */
18522
18523 /* DataTypeConversion: '<S603>/Data Type Conversion2' */
18524 L4_MABX_B.EPBPCMInhibitStatusFeedback_p = (ENUM_XPR_FEEDBACK_T)
18525 L4_MABX_B.DataTypeConversion_ev;
18526 L4_MABX_B.EPBPCMInhibitStatusFeedback_e =
18527 L4_MABX_B.EPBPCMInhibitStatusFeedback_p;
18528 break;
18529
18530 case ENUM_CAN_RX_T_RX_CAN_2:
18531 /* DataTypeConversion: '<S604>/Data Type Conversion' */
18532 PositionFinalLimited = L4_MABX_B.SFunction1_o1_cf;
18533 if (PositionFinalLimited < 256.0) {
18534 if (PositionFinalLimited >= 0.0) {
18535 starting_index = (uint8_T)PositionFinalLimited;
18536 } else {
18537 starting_index = 0U;
18538 }
18539 } else {
18540 starting_index = MAX_uint8_T;
18541 }
18542
18543 L4_MABX_B.DataTypeConversion_my = starting_index;
18544
18545 /* End of DataTypeConversion: '<S604>/Data Type Conversion' */
18546
18547 /* DataTypeConversion: '<S604>/Data Type Conversion2' */
18548 L4_MABX_B.EPBPCMInhibitStatusFeedback_c = (ENUM_XPR_FEEDBACK_T)
18549 L4_MABX_B.DataTypeConversion_my;
18550 L4_MABX_B.EPBPCMInhibitStatusFeedback_e =
18551 L4_MABX_B.EPBPCMInhibitStatusFeedback_c;
18552 break;
18553
18554 case ENUM_CAN_RX_T_RX_CAN_3:
18555 L4_MABX_B.EPBPCMInhibitStatusFeedback_e =
18556 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18557 break;
18558
18559 case ENUM_CAN_RX_T_RX_CAN_4:
18560 L4_MABX_B.EPBPCMInhibitStatusFeedback_e =
18561 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18562 break;
18563
18564 case ENUM_CAN_RX_T_RX_CAN_5:
18565 L4_MABX_B.EPBPCMInhibitStatusFeedback_e =
18566 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18567 break;
18568
18569 case ENUM_CAN_RX_T_RX_CAN_6:
18570 L4_MABX_B.EPBPCMInhibitStatusFeedback_e =
18571 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18572 break;
18573
18574 default:
18575 L4_MABX_B.EPBPCMInhibitStatusFeedback_e =
18576 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18577 break;
18578 }
18579
18580 /* DataTypeConversion: '<S605>/Data Type Conversion1' */
18581 PositionFinalLimited = L4_MABX_B.SFunction1_o2_gi;
18582 if (PositionFinalLimited < 256.0) {
18583 if (PositionFinalLimited >= 0.0) {
18584 starting_index = (uint8_T)PositionFinalLimited;
18585 } else {
18586 starting_index = 0U;
18587 }
18588 } else {
18589 starting_index = MAX_uint8_T;
18590 }
18591
18592 L4_MABX_B.DataTypeConversion1_ij = starting_index;
18593
18594 /* End of DataTypeConversion: '<S605>/Data Type Conversion1' */
18595
18596 /* DataTypeConversion: '<S605>/Data Type Conversion3' */
18597 L4_MABX_B.EPBPCMManualStatusFeedback = (ENUM_XPR_FEEDBACK_T)
18598 L4_MABX_B.DataTypeConversion1_ij;
18599
18600 /* MultiPortSwitch: '<S441>/Multiport_Switch' incorporates:
18601 * Constant: '<S441>/Constant'
18602 */
18603 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18604 case ENUM_CAN_RX_T_RX_CAN_1:
18605 /* DataTypeConversion: '<S603>/Data Type Conversion1' */
18606 PositionFinalLimited = L4_MABX_B.SFunction1_o2_k1;
18607 if (PositionFinalLimited < 256.0) {
18608 if (PositionFinalLimited >= 0.0) {
18609 starting_index = (uint8_T)PositionFinalLimited;
18610 } else {
18611 starting_index = 0U;
18612 }
18613 } else {
18614 starting_index = MAX_uint8_T;
18615 }
18616
18617 L4_MABX_B.DataTypeConversion1_cs = starting_index;
18618
18619 /* End of DataTypeConversion: '<S603>/Data Type Conversion1' */
18620
18621 /* DataTypeConversion: '<S603>/Data Type Conversion3' */
18622 L4_MABX_B.EPBPCMManualStatusFeedback_b = (ENUM_XPR_FEEDBACK_T)
18623 L4_MABX_B.DataTypeConversion1_cs;
18624 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18625 L4_MABX_B.EPBPCMManualStatusFeedback_b;
18626 break;
18627
18628 case ENUM_CAN_RX_T_RX_CAN_2:
18629 /* DataTypeConversion: '<S604>/Data Type Conversion1' */
18630 PositionFinalLimited = L4_MABX_B.SFunction1_o2_f3;
18631 if (PositionFinalLimited < 256.0) {
18632 if (PositionFinalLimited >= 0.0) {
18633 starting_index = (uint8_T)PositionFinalLimited;
18634 } else {
18635 starting_index = 0U;
18636 }
18637 } else {
18638 starting_index = MAX_uint8_T;
18639 }
18640
18641 L4_MABX_B.DataTypeConversion1_jb = starting_index;
18642
18643 /* End of DataTypeConversion: '<S604>/Data Type Conversion1' */
18644
18645 /* DataTypeConversion: '<S604>/Data Type Conversion3' */
18646 L4_MABX_B.EPBPCMManualStatusFeedback_a = (ENUM_XPR_FEEDBACK_T)
18647 L4_MABX_B.DataTypeConversion1_jb;
18648 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18649 L4_MABX_B.EPBPCMManualStatusFeedback_a;
18650 break;
18651
18652 case ENUM_CAN_RX_T_RX_CAN_3:
18653 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18654 L4_MABX_B.EPBPCMManualStatusFeedback;
18655 break;
18656
18657 case ENUM_CAN_RX_T_RX_CAN_4:
18658 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18659 L4_MABX_B.EPBPCMManualStatusFeedback;
18660 break;
18661
18662 case ENUM_CAN_RX_T_RX_CAN_5:
18663 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18664 L4_MABX_B.EPBPCMManualStatusFeedback;
18665 break;
18666
18667 case ENUM_CAN_RX_T_RX_CAN_6:
18668 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18669 L4_MABX_B.EPBPCMManualStatusFeedback;
18670 break;
18671
18672 default:
18673 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18674 L4_MABX_B.EPBPCMManualStatusFeedback;
18675 break;
18676 }
18677
18678 /* DataTypeConversion: '<S605>/Data Type Conversion8' */
18679 L4_MABX_B.RX_status_gz = (L4_MABX_B.SFunction1_o3_c != 0.0);
18680
18681 /* MultiPortSwitch: '<S441>/Multiport_Switch' incorporates:
18682 * Constant: '<S441>/Constant'
18683 */
18684 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18685 case ENUM_CAN_RX_T_RX_CAN_1:
18686 /* DataTypeConversion: '<S603>/Data Type Conversion8' */
18687 L4_MABX_B.RX_status_dx = (L4_MABX_B.SFunction1_o3_or != 0.0);
18688 L4_MABX_B.RX_status_bv = L4_MABX_B.RX_status_dx;
18689 break;
18690
18691 case ENUM_CAN_RX_T_RX_CAN_2:
18692 /* DataTypeConversion: '<S604>/Data Type Conversion8' */
18693 L4_MABX_B.RX_status_mo = (L4_MABX_B.SFunction1_o3_g1 != 0.0);
18694 L4_MABX_B.RX_status_bv = L4_MABX_B.RX_status_mo;
18695 break;
18696
18697 case ENUM_CAN_RX_T_RX_CAN_3:
18698 L4_MABX_B.RX_status_bv = L4_MABX_B.RX_status_gz;
18699 break;
18700
18701 case ENUM_CAN_RX_T_RX_CAN_4:
18702 L4_MABX_B.RX_status_bv = L4_MABX_B.RX_status_gz;
18703 break;
18704
18705 case ENUM_CAN_RX_T_RX_CAN_5:
18706 L4_MABX_B.RX_status_bv = L4_MABX_B.RX_status_gz;
18707 break;
18708
18709 case ENUM_CAN_RX_T_RX_CAN_6:
18710 L4_MABX_B.RX_status_bv = L4_MABX_B.RX_status_gz;
18711 break;
18712
18713 default:
18714 L4_MABX_B.RX_status_bv = L4_MABX_B.RX_status_gz;
18715 break;
18716 }
18717
18718 /* DataTypeConversion: '<S605>/Data Type Conversion9' */
18719 L4_MABX_B.RX_time_ap = L4_MABX_B.SFunction1_o4_dp;
18720
18721 /* MultiPortSwitch: '<S441>/Multiport_Switch' incorporates:
18722 * Constant: '<S441>/Constant'
18723 */
18724 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18725 case ENUM_CAN_RX_T_RX_CAN_1:
18726 /* DataTypeConversion: '<S603>/Data Type Conversion9' */
18727 L4_MABX_B.RX_time_pw = L4_MABX_B.SFunction1_o4_dd;
18728 L4_MABX_B.RX_time_p = L4_MABX_B.RX_time_pw;
18729 break;
18730
18731 case ENUM_CAN_RX_T_RX_CAN_2:
18732 /* DataTypeConversion: '<S604>/Data Type Conversion9' */
18733 L4_MABX_B.RX_time_i1 = L4_MABX_B.SFunction1_o4_ae;
18734 L4_MABX_B.RX_time_p = L4_MABX_B.RX_time_i1;
18735 break;
18736
18737 case ENUM_CAN_RX_T_RX_CAN_3:
18738 L4_MABX_B.RX_time_p = L4_MABX_B.RX_time_ap;
18739 break;
18740
18741 case ENUM_CAN_RX_T_RX_CAN_4:
18742 L4_MABX_B.RX_time_p = L4_MABX_B.RX_time_ap;
18743 break;
18744
18745 case ENUM_CAN_RX_T_RX_CAN_5:
18746 L4_MABX_B.RX_time_p = L4_MABX_B.RX_time_ap;
18747 break;
18748
18749 case ENUM_CAN_RX_T_RX_CAN_6:
18750 L4_MABX_B.RX_time_p = L4_MABX_B.RX_time_ap;
18751 break;
18752
18753 default:
18754 L4_MABX_B.RX_time_p = L4_MABX_B.RX_time_ap;
18755 break;
18756 }
18757
18758 /* DataTypeConversion: '<S605>/Data Type Conversion10' */
18759 L4_MABX_B.RX_delta_time_bp = L4_MABX_B.SFunction1_o5_ku;
18760
18761 /* MultiPortSwitch: '<S441>/Multiport_Switch' incorporates:
18762 * Constant: '<S441>/Constant'
18763 */
18764 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18765 case ENUM_CAN_RX_T_RX_CAN_1:
18766 /* DataTypeConversion: '<S603>/Data Type Conversion10' */
18767 L4_MABX_B.RX_delta_time_p = L4_MABX_B.SFunction1_o5_lp;
18768 L4_MABX_B.RX_delta_time_hs = L4_MABX_B.RX_delta_time_p;
18769 break;
18770
18771 case ENUM_CAN_RX_T_RX_CAN_2:
18772 /* DataTypeConversion: '<S604>/Data Type Conversion10' */
18773 L4_MABX_B.RX_delta_time_dd = L4_MABX_B.SFunction1_o5_e;
18774 L4_MABX_B.RX_delta_time_hs = L4_MABX_B.RX_delta_time_dd;
18775 break;
18776
18777 case ENUM_CAN_RX_T_RX_CAN_3:
18778 L4_MABX_B.RX_delta_time_hs = L4_MABX_B.RX_delta_time_bp;
18779 break;
18780
18781 case ENUM_CAN_RX_T_RX_CAN_4:
18782 L4_MABX_B.RX_delta_time_hs = L4_MABX_B.RX_delta_time_bp;
18783 break;
18784
18785 case ENUM_CAN_RX_T_RX_CAN_5:
18786 L4_MABX_B.RX_delta_time_hs = L4_MABX_B.RX_delta_time_bp;
18787 break;
18788
18789 case ENUM_CAN_RX_T_RX_CAN_6:
18790 L4_MABX_B.RX_delta_time_hs = L4_MABX_B.RX_delta_time_bp;
18791 break;
18792
18793 default:
18794 L4_MABX_B.RX_delta_time_hs = L4_MABX_B.RX_delta_time_bp;
18795 break;
18796 }
18797
18798 /* RelationalOperator: '<S613>/Operator' incorporates:
18799 * Constant: '<S441>/Constant'
18800 * Constant: '<S606>/Constant3'
18801 */
18802 L4_MABX_B.Operator_pd = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18803 L4_MABX_P.Constant3_Value_c);
18804
18805 /* RelationalOperator: '<S614>/Operator' incorporates:
18806 * Constant: '<S441>/Constant'
18807 * Constant: '<S606>/Constant4'
18808 */
18809 L4_MABX_B.Operator_n4 = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18810 L4_MABX_P.Constant4_Value_a);
18811
18812 /* RelationalOperator: '<S615>/Operator' incorporates:
18813 * Constant: '<S441>/Constant'
18814 * Constant: '<S606>/Constant5'
18815 */
18816 L4_MABX_B.Operator_ax = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18817 L4_MABX_P.Constant5_Value_f);
18818
18819 /* Outputs for Enabled SubSystem: '<S616>/PX2_LaneEdgeLeft' incorporates:
18820 * EnablePort: '<S617>/Enable'
18821 */
18822 /* Constant: '<S442>/Constant' */
18823 if (L4_MABX_P.Constant_Value_ig) {
18824 /* S-Function (rti_commonblock): '<S617>/S-Function1' */
18825 /* This comment workarounds a code generation problem */
18826
18827 /* dSPACE RTICAN RX Message Block: "PX2_LaneEdgeLeft" Id:770 */
18828 {
18829 UInt32 *CAN_Msg;
18830 static dsfloat time_old = 0.0;
18831
18832 /* Read status and timestamp info (previous message) */
18833 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp !=
18834 time_old) {
18835 /* ... save timestamp info for the calculation of the RX status
18836 during the consecutive sample hit*/
18837 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp;
18838
18839 /* ... set the processed flag to one */
18840 L4_MABX_B.SFunction1_o4_aw = 1.0;
18841 L4_MABX_B.SFunction1_o5_hs = (real_T)
18842 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp;
18843 L4_MABX_B.SFunction1_o6_fp = (real_T)
18844 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].deltatime;
18845 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].data;
18846
18847 /* Decode CAN message */
18848 {
18849 {
18850 rtican_Signal_t CAN_Sgn;
18851
18852 /* ...... "PX2_LaneEdgeLeftAngle" (0|16, standard signal, signed int, little endian) */
18853 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18854 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18855 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18856 if (CAN_Sgn.SignedSgn >> 15) {
18857 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18858 }
18859
18860 L4_MABX_B.SFunction1_o1_cdy = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
18861
18862 /* ...... "PX2_LaneEdgeLeftNumPoints" (16|8, standard signal, unsigned int, little endian) */
18863 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18864 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18865 L4_MABX_B.SFunction1_o2_ma = ((real_T) CAN_Sgn.UnsignedSgn);
18866
18867 /* ...... "PX2_LaneEdgeLeftPosition" (24|16, standard signal, signed int, little endian) */
18868 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18869 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
18870 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18871 if (CAN_Sgn.SignedSgn >> 15) {
18872 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18873 }
18874
18875 L4_MABX_B.SFunction1_o3_hr = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
18876 }
18877 }
18878 } else {
18879 /* set RX status to 0 because no new message has arrived */
18880 L4_MABX_B.SFunction1_o4_aw = 0.0;
18881 }
18882 }
18883 }
18884
18885 /* End of Outputs for SubSystem: '<S616>/PX2_LaneEdgeLeft' */
18886
18887 /* DataTypeConversion: '<S616>/Data Type Conversion1' */
18888 L4_MABX_B.RX_delta_time_eq = L4_MABX_B.SFunction1_o6_fp;
18889
18890 /* DataTypeConversion: '<S616>/Data Type Conversion10' */
18891 L4_MABX_B.RX_delta_time_ea = L4_MABX_B.SFunction1_o7_j;
18892
18893 /* DataTypeConversion: '<S616>/Data Type Conversion2' */
18894 L4_MABX_B.RX_status_p = (L4_MABX_B.SFunction1_o4_aw != 0.0);
18895
18896 /* DataTypeConversion: '<S616>/Data Type Conversion3' */
18897 L4_MABX_B.RX_time_bn = L4_MABX_B.SFunction1_o5_hs;
18898
18899 /* Outputs for Enabled SubSystem: '<S616>/PX2_LaneEdgeRight' incorporates:
18900 * EnablePort: '<S618>/Enable'
18901 */
18902 /* Constant: '<S442>/Constant' */
18903 if (L4_MABX_P.Constant_Value_ig) {
18904 /* S-Function (rti_commonblock): '<S618>/S-Function1' */
18905 /* This comment workarounds a code generation problem */
18906
18907 /* dSPACE RTICAN RX Message Block: "PX2_LaneEdgeRight" Id:771 */
18908 {
18909 UInt32 *CAN_Msg;
18910 static dsfloat time_old = 0.0;
18911
18912 /* Read status and timestamp info (previous message) */
18913 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp !=
18914 time_old) {
18915 /* ... save timestamp info for the calculation of the RX status
18916 during the consecutive sample hit*/
18917 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp;
18918
18919 /* ... set the processed flag to one */
18920 L4_MABX_B.SFunction1_o4_oj = 1.0;
18921 L4_MABX_B.SFunction1_o5_a = (real_T)
18922 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp;
18923 L4_MABX_B.SFunction1_o6_p = (real_T)
18924 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].deltatime;
18925 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].data;
18926
18927 /* Decode CAN message */
18928 {
18929 {
18930 rtican_Signal_t CAN_Sgn;
18931
18932 /* ...... "PX2_LaneEdgeRightAngle" (0|16, standard signal, signed int, little endian) */
18933 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18934 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18935 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18936 if (CAN_Sgn.SignedSgn >> 15) {
18937 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18938 }
18939
18940 L4_MABX_B.SFunction1_o1_o = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
18941
18942 /* ...... "PX2_LaneEdgeRightNumPoints" (16|8, standard signal, unsigned int, little endian) */
18943 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18944 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18945 L4_MABX_B.SFunction1_o2_f4 = ((real_T) CAN_Sgn.UnsignedSgn);
18946
18947 /* ...... "PX2_LaneEdgeRightPosition" (24|16, standard signal, signed int, little endian) */
18948 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18949 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
18950 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18951 if (CAN_Sgn.SignedSgn >> 15) {
18952 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18953 }
18954
18955 L4_MABX_B.SFunction1_o3_hx = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
18956 }
18957 }
18958 } else {
18959 /* set RX status to 0 because no new message has arrived */
18960 L4_MABX_B.SFunction1_o4_oj = 0.0;
18961 }
18962 }
18963 }
18964
18965 /* End of Outputs for SubSystem: '<S616>/PX2_LaneEdgeRight' */
18966
18967 /* DataTypeConversion: '<S616>/Data Type Conversion4' */
18968 L4_MABX_B.RX_delta_time_lv = L4_MABX_B.SFunction1_o6_p;
18969
18970 /* DataTypeConversion: '<S616>/Data Type Conversion5' */
18971 L4_MABX_B.RX_status_d5 = (L4_MABX_B.SFunction1_o4_oj != 0.0);
18972
18973 /* DataTypeConversion: '<S616>/Data Type Conversion6' */
18974 L4_MABX_B.RX_time_ca = L4_MABX_B.SFunction1_o5_a;
18975
18976 /* DataTypeConversion: '<S616>/Data Type Conversion8' */
18977 L4_MABX_B.RX_status_ir = (L4_MABX_B.SFunction1_o5_k != 0.0);
18978
18979 /* DataTypeConversion: '<S616>/Data Type Conversion9' */
18980 L4_MABX_B.RX_time_iz = L4_MABX_B.SFunction1_o6_d;
18981
18982 /* Switch: '<S620>/Switch' */
18983 if (L4_MABX_B.If_Then_Else.Switch) {
18984 /* DataTypeConversion: '<S620>/Data Type Conversion8' */
18985 L4_MABX_B.RX_status_g5i = (L4_MABX_B.SFunction1_o3_ol != 0.0);
18986 L4_MABX_B.RX_status_dp = L4_MABX_B.RX_status_g5i;
18987
18988 /* DataTypeConversion: '<S620>/Data Type Conversion9' */
18989 L4_MABX_B.RX_time_ab = L4_MABX_B.SFunction1_o4_i;
18990 L4_MABX_B.RX_time_p2 = L4_MABX_B.RX_time_ab;
18991
18992 /* DataTypeConversion: '<S620>/Data Type Conversion10' */
18993 L4_MABX_B.RX_delta_time_d4 = L4_MABX_B.SFunction1_o5_go;
18994 L4_MABX_B.RX_delta_time_og = L4_MABX_B.RX_delta_time_d4;
18995 } else {
18996 /* DataTypeConversion: '<S620>/Data Type Conversion3' */
18997 L4_MABX_B.RX_status_mx = (L4_MABX_B.SFunction1_o3_aw != 0.0);
18998 L4_MABX_B.RX_status_dp = L4_MABX_B.RX_status_mx;
18999
19000 /* DataTypeConversion: '<S620>/Data Type Conversion2' */
19001 L4_MABX_B.RX_time_a4 = L4_MABX_B.SFunction1_o4_e1;
19002 L4_MABX_B.RX_time_p2 = L4_MABX_B.RX_time_a4;
19003
19004 /* DataTypeConversion: '<S620>/Data Type Conversion1' */
19005 L4_MABX_B.RX_delta_time_lj = L4_MABX_B.SFunction1_o5_p;
19006 L4_MABX_B.RX_delta_time_og = L4_MABX_B.RX_delta_time_lj;
19007 }
19008
19009 /* DataTypeConversion: '<S623>/Data Type Conversion1' */
19010 L4_MABX_B.XPR1ControlStatus = L4_MABX_B.SFunction1_o6_k;
19011
19012 /* DataTypeConversion: '<S623>/Data Type Conversion10' */
19013 L4_MABX_B.RX_delta_time_ic = L4_MABX_B.SFunction1_o13_d;
19014
19015 /* DataTypeConversion: '<S623>/Data Type Conversion2' */
19016 L4_MABX_B.XPR2ControlStatus = L4_MABX_B.SFunction1_o7_ds;
19017
19018 /* DataTypeConversion: '<S623>/Data Type Conversion3' */
19019 L4_MABX_B.XPR3ControlStatus = L4_MABX_B.SFunction1_o8_bh;
19020
19021 /* DataTypeConversion: '<S623>/Data Type Conversion8' */
19022 L4_MABX_B.RX_status_h1 = (L4_MABX_B.SFunction1_o11_g != 0.0);
19023
19024 /* DataTypeConversion: '<S623>/Data Type Conversion9' */
19025 L4_MABX_B.RX_time_fl = L4_MABX_B.SFunction1_o12_o;
19026
19027 /* DataTypeConversion: '<S625>/Data Type Conversion10' */
19028 L4_MABX_B.RX_delta_time_ip = L4_MABX_B.SFunction1_o10_k;
19029
19030 /* DataTypeConversion: '<S625>/Data Type Conversion8' */
19031 L4_MABX_B.RX_status_he = (L4_MABX_B.SFunction1_o8_nr != 0.0);
19032
19033 /* DataTypeConversion: '<S625>/Data Type Conversion9' */
19034 L4_MABX_B.RX_time_jn = L4_MABX_B.SFunction1_o9_k;
19035
19036 /* Outputs for Enabled SubSystem: '<S627>/PX2_MapLaneEgoLeft' incorporates:
19037 * EnablePort: '<S628>/Enable'
19038 */
19039 /* Constant: '<S446>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
19040 if (L4_MABX_P.CAN_RXEnable_PX2_MapLaneEgoLeft) {
19041 /* S-Function (rti_commonblock): '<S628>/S-Function1' */
19042 /* This comment workarounds a code generation problem */
19043
19044 /* dSPACE RTICAN RX Message Block: "PX2_MapLaneEgoLeft" Id:1542 */
19045 {
19046 UInt32 *CAN_Msg;
19047 static dsfloat time_old = 0.0;
19048
19049 /* Read status and timestamp info (previous message) */
19050 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp !=
19051 time_old) {
19052 /* ... save timestamp info for the calculation of the RX status
19053 during the consecutive sample hit*/
19054 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp;
19055
19056 /* ... set the processed flag to one */
19057 L4_MABX_B.SFunction1_o7_im = 1.0;
19058 L4_MABX_B.SFunction1_o8_b = (real_T)
19059 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp;
19060 L4_MABX_B.SFunction1_o9_am = (real_T)
19061 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].deltatime;
19062 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].data;
19063
19064 /* Decode CAN message */
19065 {
19066 {
19067 rtican_Signal_t CAN_Sgn;
19068
19069 /* ...... "PX2_MapLaneNearPos" (0|16, standard signal, signed int, little endian) */
19070 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19071 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19072 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19073 if (CAN_Sgn.SignedSgn >> 15) {
19074 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19075 }
19076
19077 L4_MABX_B.SFunction1_o1_fnx = 0.00390625 * ( ((real_T)
19078 CAN_Sgn.SignedSgn) );
19079
19080 /* ...... "PX2_MapLaneMidPos" (16|16, standard signal, signed int, little endian) */
19081 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19082 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19083 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19084 if (CAN_Sgn.SignedSgn >> 15) {
19085 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19086 }
19087
19088 L4_MABX_B.SFunction1_o2_ld = 0.00390625 * ( ((real_T)
19089 CAN_Sgn.SignedSgn) );
19090
19091 /* ...... "PX2_MapLaneFarPos" (32|16, standard signal, signed int, little endian) */
19092 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19093 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19094 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19095 if (CAN_Sgn.SignedSgn >> 15) {
19096 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19097 }
19098
19099 L4_MABX_B.SFunction1_o3_md = 0.00390625 * ( ((real_T)
19100 CAN_Sgn.SignedSgn) );
19101
19102 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
19103 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19104 CAN_Sgn.UnsignedSgn &= 0x00000003;
19105 L4_MABX_B.SFunction1_o4_g = ((real_T) CAN_Sgn.UnsignedSgn);
19106
19107 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
19108 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19109 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
19110 CAN_Sgn.UnsignedSgn &= 0x00000003;
19111 L4_MABX_B.SFunction1_o5_h = ((real_T) CAN_Sgn.UnsignedSgn);
19112
19113 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
19114 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19115 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
19116 CAN_Sgn.UnsignedSgn &= 0x00000003;
19117 L4_MABX_B.SFunction1_o6_b = ((real_T) CAN_Sgn.UnsignedSgn);
19118 }
19119 }
19120 } else {
19121 /* set RX status to 0 because no new message has arrived */
19122 L4_MABX_B.SFunction1_o7_im = 0.0;
19123 }
19124 }
19125 }
19126
19127 /* End of Constant: '<S446>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
19128 /* End of Outputs for SubSystem: '<S627>/PX2_MapLaneEgoLeft' */
19129
19130 /* DataTypeConversion: '<S627>/Data Type Conversion10' */
19131 L4_MABX_B.RX_delta_time_bh = L4_MABX_B.SFunction1_o9_am;
19132
19133 /* DataTypeConversion: '<S627>/Data Type Conversion8' */
19134 L4_MABX_B.RX_status_n3 = (L4_MABX_B.SFunction1_o7_im != 0.0);
19135
19136 /* DataTypeConversion: '<S627>/Data Type Conversion9' */
19137 L4_MABX_B.RX_time_kx = L4_MABX_B.SFunction1_o8_b;
19138
19139 /* Outputs for Enabled SubSystem: '<S629>/PX2_MapLaneEgoRight' incorporates:
19140 * EnablePort: '<S630>/Enable'
19141 */
19142 /* Constant: '<S447>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
19143 if (L4_MABX_P.CAN_RXEnable_PX2_MapLaneEgoLe_m) {
19144 /* S-Function (rti_commonblock): '<S630>/S-Function1' */
19145 /* This comment workarounds a code generation problem */
19146
19147 /* dSPACE RTICAN RX Message Block: "PX2_MapLaneEgoRight" Id:1541 */
19148 {
19149 UInt32 *CAN_Msg;
19150 static dsfloat time_old = 0.0;
19151
19152 /* Read status and timestamp info (previous message) */
19153 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp !=
19154 time_old) {
19155 /* ... save timestamp info for the calculation of the RX status
19156 during the consecutive sample hit*/
19157 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp;
19158
19159 /* ... set the processed flag to one */
19160 L4_MABX_B.SFunction1_o7_df = 1.0;
19161 L4_MABX_B.SFunction1_o8_n = (real_T)
19162 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp;
19163 L4_MABX_B.SFunction1_o9_b = (real_T)
19164 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].deltatime;
19165 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].data;
19166
19167 /* Decode CAN message */
19168 {
19169 {
19170 rtican_Signal_t CAN_Sgn;
19171
19172 /* ...... "PX2_MapLaneNearPos" (0|16, standard signal, signed int, little endian) */
19173 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19174 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19175 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19176 if (CAN_Sgn.SignedSgn >> 15) {
19177 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19178 }
19179
19180 L4_MABX_B.SFunction1_o1_mm = 0.00390625 * ( ((real_T)
19181 CAN_Sgn.SignedSgn) );
19182
19183 /* ...... "PX2_MapLaneMidPos" (16|16, standard signal, signed int, little endian) */
19184 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19185 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19186 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19187 if (CAN_Sgn.SignedSgn >> 15) {
19188 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19189 }
19190
19191 L4_MABX_B.SFunction1_o2_dx = 0.00390625 * ( ((real_T)
19192 CAN_Sgn.SignedSgn) );
19193
19194 /* ...... "PX2_MapLaneFarPos" (32|16, standard signal, signed int, little endian) */
19195 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19196 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19197 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19198 if (CAN_Sgn.SignedSgn >> 15) {
19199 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19200 }
19201
19202 L4_MABX_B.SFunction1_o3_dx = 0.00390625 * ( ((real_T)
19203 CAN_Sgn.SignedSgn) );
19204
19205 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
19206 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19207 CAN_Sgn.UnsignedSgn &= 0x00000003;
19208 L4_MABX_B.SFunction1_o4_ns = ((real_T) CAN_Sgn.UnsignedSgn);
19209
19210 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
19211 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19212 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
19213 CAN_Sgn.UnsignedSgn &= 0x00000003;
19214 L4_MABX_B.SFunction1_o5_b = ((real_T) CAN_Sgn.UnsignedSgn);
19215
19216 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
19217 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19218 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
19219 CAN_Sgn.UnsignedSgn &= 0x00000003;
19220 L4_MABX_B.SFunction1_o6_om = ((real_T) CAN_Sgn.UnsignedSgn);
19221 }
19222 }
19223 } else {
19224 /* set RX status to 0 because no new message has arrived */
19225 L4_MABX_B.SFunction1_o7_df = 0.0;
19226 }
19227 }
19228 }
19229
19230 /* End of Constant: '<S447>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
19231 /* End of Outputs for SubSystem: '<S629>/PX2_MapLaneEgoRight' */
19232
19233 /* DataTypeConversion: '<S629>/Data Type Conversion10' */
19234 L4_MABX_B.RX_delta_time_jz = L4_MABX_B.SFunction1_o9_b;
19235
19236 /* DataTypeConversion: '<S629>/Data Type Conversion8' */
19237 L4_MABX_B.RX_status_km = (L4_MABX_B.SFunction1_o7_df != 0.0);
19238
19239 /* DataTypeConversion: '<S629>/Data Type Conversion9' */
19240 L4_MABX_B.RX_time_ku = L4_MABX_B.SFunction1_o8_n;
19241
19242 /* Outputs for Enabled SubSystem: '<S631>/PX2_EgoLanePos' incorporates:
19243 * EnablePort: '<S632>/Enable'
19244 */
19245 /* Constant: '<S448>/Constant' */
19246 if (L4_MABX_P.Constant_Value_ok) {
19247 /* S-Function (rti_commonblock): '<S632>/S-Function1' */
19248 /* This comment workarounds a code generation problem */
19249
19250 /* dSPACE RTICAN RX Message Block: "PX2_EgoLanePos" Id:1540 */
19251 {
19252 UInt32 *CAN_Msg;
19253 static dsfloat time_old = 0.0;
19254
19255 /* Read status and timestamp info (previous message) */
19256 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp !=
19257 time_old) {
19258 /* ... save timestamp info for the calculation of the RX status
19259 during the consecutive sample hit*/
19260 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp;
19261
19262 /* ... set the processed flag to one */
19263 L4_MABX_B.SFunction1_o7_n = 1.0;
19264 L4_MABX_B.SFunction1_o8_e = (real_T)
19265 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp;
19266 L4_MABX_B.SFunction1_o9_a = (real_T)
19267 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].deltatime;
19268 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].data;
19269
19270 /* Decode CAN message */
19271 {
19272 {
19273 rtican_Signal_t CAN_Sgn;
19274
19275 /* ...... "PX2_EgoLaneNearPosErr" (0|16, standard signal, signed int, little endian) */
19276 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19277 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19278 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19279 if (CAN_Sgn.SignedSgn >> 15) {
19280 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19281 }
19282
19283 L4_MABX_B.SFunction1_o1_gw = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19284
19285 /* ...... "PX2_EgoLaneMidPosErr" (16|16, standard signal, signed int, little endian) */
19286 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19287 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19288 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19289 if (CAN_Sgn.SignedSgn >> 15) {
19290 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19291 }
19292
19293 L4_MABX_B.SFunction1_o2_ju = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19294
19295 /* ...... "PX2_EgoLaneFarPosErr" (32|16, standard signal, signed int, little endian) */
19296 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19297 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19298 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19299 if (CAN_Sgn.SignedSgn >> 15) {
19300 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19301 }
19302
19303 L4_MABX_B.SFunction1_o3_gn3 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19304
19305 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
19306 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19307 CAN_Sgn.UnsignedSgn &= 0x00000003;
19308 L4_MABX_B.SFunction1_o4_h0 = ((real_T) CAN_Sgn.UnsignedSgn);
19309
19310 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
19311 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19312 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
19313 CAN_Sgn.UnsignedSgn &= 0x00000003;
19314 L4_MABX_B.SFunction1_o5_c = ((real_T) CAN_Sgn.UnsignedSgn);
19315
19316 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
19317 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19318 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
19319 CAN_Sgn.UnsignedSgn &= 0x00000003;
19320 L4_MABX_B.SFunction1_o6_j = ((real_T) CAN_Sgn.UnsignedSgn);
19321 }
19322 }
19323 } else {
19324 /* set RX status to 0 because no new message has arrived */
19325 L4_MABX_B.SFunction1_o7_n = 0.0;
19326 }
19327 }
19328 }
19329
19330 /* End of Constant: '<S448>/Constant' */
19331 /* End of Outputs for SubSystem: '<S631>/PX2_EgoLanePos' */
19332
19333 /* DataTypeConversion: '<S631>/Data Type Conversion10' */
19334 L4_MABX_B.RX_delta_time_nt = L4_MABX_B.SFunction1_o9_a;
19335
19336 /* DataTypeConversion: '<S631>/Data Type Conversion8' */
19337 L4_MABX_B.RX_status_li = (L4_MABX_B.SFunction1_o7_n != 0.0);
19338
19339 /* DataTypeConversion: '<S631>/Data Type Conversion9' */
19340 L4_MABX_B.RX_time_k5 = L4_MABX_B.SFunction1_o8_e;
19341
19342 /* DataTypeConversion: '<S633>/Data Type Conversion10' */
19343 L4_MABX_B.RX_delta_time_g2 = L4_MABX_B.SFunction1_o7_c;
19344
19345 /* DataTypeConversion: '<S633>/Data Type Conversion9' */
19346 L4_MABX_B.RX_time_b2 = L4_MABX_B.SFunction1_o6_o;
19347
19348 /* DataTypeConversion: '<S635>/Data Type Conversion10' */
19349 L4_MABX_B.RX_delta_time_ew = L4_MABX_B.SFunction1_o28;
19350
19351 /* DataTypeConversion: '<S635>/Data Type Conversion8' */
19352 L4_MABX_B.RX_status_ab = (L4_MABX_B.SFunction1_o26 != 0.0);
19353
19354 /* DataTypeConversion: '<S635>/Data Type Conversion9' */
19355 L4_MABX_B.RX_time_d4 = L4_MABX_B.SFunction1_o27;
19356
19357 /* DataTypeConversion: '<S637>/Data Type Conversion10' */
19358 L4_MABX_B.RX_delta_time_n3 = L4_MABX_B.SFunction1_o10;
19359
19360 /* DataTypeConversion: '<S637>/Data Type Conversion8' */
19361 L4_MABX_B.RX_status_oz = (L4_MABX_B.SFunction1_o8_i != 0.0);
19362
19363 /* DataTypeConversion: '<S637>/Data Type Conversion9' */
19364 L4_MABX_B.RX_time_j2 = L4_MABX_B.SFunction1_o9_i;
19365
19366 /* DataTypeConversion: '<S639>/Data Type Conversion10' */
19367 L4_MABX_B.RX_delta_time_j4 = L4_MABX_B.SFunction1_o9;
19368
19369 /* DataTypeConversion: '<S639>/Data Type Conversion8' */
19370 L4_MABX_B.RX_status_dn = (L4_MABX_B.SFunction1_o7_i != 0.0);
19371
19372 /* DataTypeConversion: '<S639>/Data Type Conversion9' */
19373 L4_MABX_B.RX_time_ct = L4_MABX_B.SFunction1_o8_l;
19374
19375 /* Outputs for Enabled SubSystem: '<S641>/VEP1' incorporates:
19376 * EnablePort: '<S642>/Enable'
19377 */
19378 /* Constant: '<S453>/Constant' */
19379 if (L4_MABX_P.Constant_Value_e0 > 0.0) {
19380 /* S-Function (rti_commonblock): '<S642>/S-Function1' */
19381 /* This comment workarounds a code generation problem */
19382
19383 /* dSPACE RTICAN RX Message Block: "VEP1" Id:419362563 */
19384 {
19385 UInt32 *CAN_Msg;
19386 static dsfloat time_old = 0.0;
19387
19388 /* Read status and timestamp info (previous message) */
19389 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].timestamp !=
19390 time_old) {
19391 /* ... save timestamp info for the calculation of the RX status
19392 during the consecutive sample hit*/
19393 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].
19394 timestamp;
19395
19396 /* ... set the processed flag to one */
19397 L4_MABX_B.SFunction1_o6 = 1.0;
19398 L4_MABX_B.SFunction1_o7 = (real_T)
19399 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].timestamp;
19400 L4_MABX_B.SFunction1_o8 = (real_T)
19401 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].deltatime;
19402 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].data;
19403
19404 /* Decode CAN message */
19405 {
19406 {
19407 rtican_Signal_t CAN_Sgn;
19408
19409 /* ...... "NetBatteryCurrent" (0|8, standard signal, unsigned int, little endian) */
19410 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19411 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19412 L4_MABX_B.SFunction1_o1_dm = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
19413 );
19414
19415 /* ...... "AltCurrent" (8|8, standard signal, unsigned int, little endian) */
19416 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19417 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19418 L4_MABX_B.SFunction1_o2_m1 = ((real_T) CAN_Sgn.UnsignedSgn);
19419
19420 /* ...... "ChargingSystemPotential" (16|16, standard signal, unsigned int, little endian) */
19421 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19422 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19423 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19424 L4_MABX_B.SFunction1_o3_az = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn)
19425 );
19426
19427 /* ...... "BatteryPotential_PowerInput1" (32|16, standard signal, unsigned int, little endian) */
19428 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19429 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19430 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19431 L4_MABX_B.SFunction1_o4_la = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn)
19432 );
19433
19434 /* ...... "KeyswitchBatteryPotential" (48|16, standard signal, unsigned int, little endian) */
19435 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19436 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
19437 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19438 L4_MABX_B.SFunction1_o5 = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
19439 }
19440 }
19441 } else {
19442 /* set RX status to 0 because no new message has arrived */
19443 L4_MABX_B.SFunction1_o6 = 0.0;
19444 }
19445 }
19446 }
19447
19448 /* End of Constant: '<S453>/Constant' */
19449 /* End of Outputs for SubSystem: '<S641>/VEP1' */
19450
19451 /* DataTypeConversion: '<S641>/Data Type Conversion1' */
19452 L4_MABX_B.PitchAngleExRange_b = L4_MABX_B.SFunction1_o1_dm;
19453
19454 /* DataTypeConversion: '<S641>/Data Type Conversion10' */
19455 L4_MABX_B.RX_delta_time_j4j = L4_MABX_B.SFunction1_o8;
19456
19457 /* DataTypeConversion: '<S641>/Data Type Conversion2' */
19458 L4_MABX_B.AltCurrent = L4_MABX_B.SFunction1_o2_m1;
19459
19460 /* DataTypeConversion: '<S641>/Data Type Conversion3' */
19461 L4_MABX_B.ChargingSystemPotential = L4_MABX_B.SFunction1_o3_az;
19462
19463 /* DataTypeConversion: '<S641>/Data Type Conversion4' */
19464 L4_MABX_B.BatteryPotential_PowerInput1 = L4_MABX_B.SFunction1_o4_la;
19465
19466 /* DataTypeConversion: '<S641>/Data Type Conversion5' */
19467 L4_MABX_B.KeyswitchBatteryPotential = L4_MABX_B.SFunction1_o5;
19468
19469 /* DataTypeConversion: '<S641>/Data Type Conversion8' */
19470 L4_MABX_B.RX_status_c0 = (L4_MABX_B.SFunction1_o6 != 0.0);
19471
19472 /* DataTypeConversion: '<S641>/Data Type Conversion9' */
19473 L4_MABX_B.RX_time_pj = L4_MABX_B.SFunction1_o7;
19474
19475 /* RelationalOperator: '<S644>/Relational Operator2' incorporates:
19476 * Constant: '<S644>/TRUCK_166_VIN_CPV'
19477 */
19478 L4_MABX_B.RelationalOperator2[0] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[0] !=
19479 L4_MABX_B.DataTypeConversion_ae);
19480 L4_MABX_B.RelationalOperator2[1] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[1] !=
19481 L4_MABX_B.DataTypeConversion1_l1);
19482 L4_MABX_B.RelationalOperator2[2] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[2] !=
19483 L4_MABX_B.DataTypeConversion2_eci);
19484 L4_MABX_B.RelationalOperator2[3] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[3] !=
19485 L4_MABX_B.DataTypeConversion3_is);
19486 L4_MABX_B.RelationalOperator2[4] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[4] !=
19487 L4_MABX_B.DataTypeConversion4_m);
19488 L4_MABX_B.RelationalOperator2[5] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[5] !=
19489 L4_MABX_B.DataTypeConversion5_c);
19490 L4_MABX_B.RelationalOperator2[6] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[6] !=
19491 L4_MABX_B.DataTypeConversion6_h);
19492 L4_MABX_B.RelationalOperator2[7] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[7] !=
19493 L4_MABX_B.DataTypeConversion7_dl);
19494 L4_MABX_B.RelationalOperator2[8] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[8] !=
19495 L4_MABX_B.DataTypeConversion8_o);
19496 L4_MABX_B.RelationalOperator2[9] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[9] !=
19497 L4_MABX_B.DataTypeConversion9_kt);
19498 L4_MABX_B.RelationalOperator2[10] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[10] !=
19499 L4_MABX_B.DataTypeConversion10_ap);
19500 L4_MABX_B.RelationalOperator2[11] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[11] !=
19501 L4_MABX_B.DataTypeConversion11_o);
19502 L4_MABX_B.RelationalOperator2[12] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[12] !=
19503 L4_MABX_B.DataTypeConversion12);
19504 L4_MABX_B.RelationalOperator2[13] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[13] !=
19505 L4_MABX_B.DataTypeConversion14_n);
19506 L4_MABX_B.RelationalOperator2[14] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[14] !=
19507 L4_MABX_B.DataTypeConversion13_g);
19508 L4_MABX_B.RelationalOperator2[15] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[15] !=
19509 L4_MABX_B.DataTypeConversion15_b);
19510 L4_MABX_B.RelationalOperator2[16] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[16] !=
19511 L4_MABX_B.DataTypeConversion16_a);
19512
19513 /* Sum: '<S644>/Add1' */
19514 tmp = 0U;
19515 for (i = 0; i < 17; i++) {
19516 tmp += L4_MABX_B.RelationalOperator2[i];
19517 }
19518
19519 L4_MABX_B.Add1_ma = (uint8_T)tmp;
19520
19521 /* End of Sum: '<S644>/Add1' */
19522
19523 /* RelationalOperator: '<S649>/Compare' incorporates:
19524 * Constant: '<S649>/Constant'
19525 */
19526 L4_MABX_B.Compare_gp = (L4_MABX_B.Add1_ma == L4_MABX_P.Constant_Value_mp);
19527
19528 /* UnitDelay: '<S644>/Unit_Delay2' */
19529 L4_MABX_B.Unit_Delay2_i = L4_MABX_DW.Unit_Delay2_DSTATE_f;
19530
19531 /* Logic: '<S644>/Logical Operator1' */
19532 L4_MABX_B.LogicalOperator1_g = (L4_MABX_B.Unit_Delay2_i &&
19533 L4_MABX_B.Compare_gp);
19534
19535 /* Logic: '<S650>/Logical Operator2' */
19536 L4_MABX_B.LogicalOperator2_h = !L4_MABX_B.LogicalOperator1_h;
19537
19538 /* UnitDelay: '<S644>/Unit_Delay1' */
19539 L4_MABX_B.Unit_Delay1_i = L4_MABX_DW.Unit_Delay1_DSTATE_g;
19540
19541 /* Logic: '<S651>/Logical Operator3' */
19542 L4_MABX_B.LogicalOperator3_o = !L4_MABX_B.Unit_Delay1_i;
19543
19544 /* UnitDelay: '<S651>/Unit_Delay' */
19545 L4_MABX_B.Unit_Delay_eu = L4_MABX_DW.Unit_Delay_DSTATE_fu;
19546
19547 /* Logic: '<S651>/Logical Operator' */
19548 L4_MABX_B.LogicalOperator_hz = (L4_MABX_B.LogicalOperator3_o &&
19549 L4_MABX_B.Unit_Delay_eu);
19550
19551 /* Logic: '<S651>/Logical Operator1' */
19552 L4_MABX_B.LogicalOperator1_l = (L4_MABX_B.LogicalOperator1_g ||
19553 L4_MABX_B.LogicalOperator_hz);
19554
19555 /* Logic: '<S651>/Logical Operator2' */
19556 L4_MABX_B.LogicalOperator2_p = !L4_MABX_B.LogicalOperator1_l;
19557
19558 /* Constant: '<S410>/Constant2' */
19559 L4_MABX_B.PX2_HeartBeat = L4_MABX_P.Constant2_Value_b5;
19560
19561 /* RelationalOperator: '<S688>/Operator' incorporates:
19562 * Constant: '<S464>/Constant1'
19563 */
19564 L4_MABX_B.Operator_h5 = (L4_MABX_B.DataTypeConversion_o0[0] ==
19565 L4_MABX_P.Constant1_Value_pe);
19566
19567 /* Outputs for Enabled SubSystem: '<S464>/Decode_TPCM_CTS' incorporates:
19568 * EnablePort: '<S683>/Enable'
19569 */
19570 if (L4_MABX_B.Operator_h5) {
19571 /* SignalConversion: '<S700>/Signal Conversion' */
19572 L4_MABX_B.SPN2556_ControlByte_c = L4_MABX_B.DataTypeConversion_o0[0];
19573
19574 /* SignalConversion: '<S701>/Signal Conversion' */
19575 L4_MABX_B.SPN2561_NumberOfPacketsThatCanB = L4_MABX_B.DataTypeConversion_o0
19576 [1];
19577
19578 /* SignalConversion: '<S702>/Signal Conversion' */
19579 L4_MABX_B.SPN2562_NextPacketNumberToBeSen = L4_MABX_B.DataTypeConversion_o0
19580 [2];
19581
19582 /* DataTypeConversion: '<S703>/Data Type Conversion' */
19583 L4_MABX_B.DataTypeConversion_dg = L4_MABX_B.DataTypeConversion_o0[5];
19584
19585 /* DataTypeConversion: '<S703>/Data Type Conversion1' */
19586 L4_MABX_B.DataTypeConversion1_o = L4_MABX_B.DataTypeConversion_o0[6];
19587
19588 /* DataTypeConversion: '<S703>/Data Type Conversion2' */
19589 L4_MABX_B.DataTypeConversion2_p2 = L4_MABX_B.DataTypeConversion_o0[7];
19590
19591 /* ArithShift: '<S703>/Shift Arithmetic1' */
19592 L4_MABX_B.ShiftArithmetic1_jl = L4_MABX_B.DataTypeConversion1_o << 8;
19593
19594 /* ArithShift: '<S703>/Shift Arithmetic2' */
19595 L4_MABX_B.ShiftArithmetic2_f = L4_MABX_B.DataTypeConversion2_p2 << 16;
19596
19597 /* S-Function (sfix_bitop): '<S704>/Operator' */
19598 L4_MABX_B.Operator_k = L4_MABX_B.DataTypeConversion_dg |
19599 L4_MABX_B.ShiftArithmetic1_jl | L4_MABX_B.ShiftArithmetic2_f;
19600
19601 /* DataTypeConversion: '<S704>/DataType' */
19602 L4_MABX_B.DataType_iw = L4_MABX_B.Operator_k;
19603 }
19604
19605 /* End of Outputs for SubSystem: '<S464>/Decode_TPCM_CTS' */
19606
19607 /* RelationalOperator: '<S691>/Operator' incorporates:
19608 * Constant: '<S464>/Constant4'
19609 */
19610 L4_MABX_B.Operator_g1 = (L4_MABX_B.DataTypeConversion_o0[0] ==
19611 L4_MABX_P.Constant4_Value_f);
19612
19613 /* Outputs for Enabled SubSystem: '<S464>/Decode_TPCM_ConnectionAbort' incorporates:
19614 * EnablePort: '<S684>/Enable'
19615 */
19616 if (L4_MABX_B.Operator_g1) {
19617 /* SignalConversion: '<S706>/Signal Conversion' */
19618 L4_MABX_B.SPN2556_ControlByte_da = L4_MABX_B.DataTypeConversion_o0[0];
19619
19620 /* SignalConversion: '<S707>/Signal Conversion' */
19621 L4_MABX_B.SPN2570_ConnectionAbortReason = L4_MABX_B.DataTypeConversion_o0[1];
19622
19623 /* DataTypeConversion: '<S708>/Data Type Conversion' */
19624 L4_MABX_B.DataTypeConversion_i5 = L4_MABX_B.DataTypeConversion_o0[5];
19625
19626 /* DataTypeConversion: '<S708>/Data Type Conversion1' */
19627 L4_MABX_B.DataTypeConversion1_dc = L4_MABX_B.DataTypeConversion_o0[6];
19628
19629 /* DataTypeConversion: '<S708>/Data Type Conversion2' */
19630 L4_MABX_B.DataTypeConversion2_ec = L4_MABX_B.DataTypeConversion_o0[7];
19631
19632 /* ArithShift: '<S708>/Shift Arithmetic1' */
19633 L4_MABX_B.ShiftArithmetic1_j = L4_MABX_B.DataTypeConversion1_dc << 8;
19634
19635 /* ArithShift: '<S708>/Shift Arithmetic2' */
19636 L4_MABX_B.ShiftArithmetic2_d = L4_MABX_B.DataTypeConversion2_ec << 16;
19637
19638 /* S-Function (sfix_bitop): '<S709>/Operator' */
19639 L4_MABX_B.Operator_m5 = L4_MABX_B.DataTypeConversion_i5 |
19640 L4_MABX_B.ShiftArithmetic1_j | L4_MABX_B.ShiftArithmetic2_d;
19641
19642 /* DataTypeConversion: '<S709>/DataType' */
19643 L4_MABX_B.DataType_i0 = L4_MABX_B.Operator_m5;
19644 }
19645
19646 /* End of Outputs for SubSystem: '<S464>/Decode_TPCM_ConnectionAbort' */
19647
19648 /* RelationalOperator: '<S689>/Operator' incorporates:
19649 * Constant: '<S464>/Constant2'
19650 */
19651 L4_MABX_B.Operator_j3 = (L4_MABX_B.DataTypeConversion_o0[0] ==
19652 L4_MABX_P.Constant2_Value_im);
19653
19654 /* Outputs for Enabled SubSystem: '<S464>/Decode_TPCM_EndOfMessageAck' incorporates:
19655 * EnablePort: '<S685>/Enable'
19656 */
19657 if (L4_MABX_B.Operator_j3) {
19658 /* SignalConversion: '<S711>/Signal Conversion' */
19659 L4_MABX_B.SPN2556_ControlByte_d = L4_MABX_B.DataTypeConversion_o0[0];
19660
19661 /* DataTypeConversion: '<S712>/Data Type Conversion' */
19662 L4_MABX_B.DataTypeConversion_kj = L4_MABX_B.DataTypeConversion_o0[1];
19663
19664 /* DataTypeConversion: '<S712>/Data Type Conversion1' */
19665 L4_MABX_B.DataTypeConversion1_nk = L4_MABX_B.DataTypeConversion_o0[2];
19666
19667 /* ArithShift: '<S712>/Shift Arithmetic2' */
19668 L4_MABX_B.ShiftArithmetic2_h = (uint16_T)(L4_MABX_B.DataTypeConversion1_nk <<
19669 8);
19670
19671 /* S-Function (sfix_bitop): '<S715>/Operator' */
19672 L4_MABX_B.Operator_lk = (uint16_T)(L4_MABX_B.DataTypeConversion_kj |
19673 L4_MABX_B.ShiftArithmetic2_h);
19674
19675 /* DataTypeConversion: '<S715>/DataType' */
19676 L4_MABX_B.DataType_mm = L4_MABX_B.Operator_lk;
19677
19678 /* SignalConversion: '<S713>/Signal Conversion' */
19679 L4_MABX_B.SPN2565_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_o0[3];
19680
19681 /* DataTypeConversion: '<S714>/Data Type Conversion' */
19682 L4_MABX_B.DataTypeConversion_av = L4_MABX_B.DataTypeConversion_o0[5];
19683
19684 /* DataTypeConversion: '<S714>/Data Type Conversion1' */
19685 L4_MABX_B.DataTypeConversion1_d2 = L4_MABX_B.DataTypeConversion_o0[6];
19686
19687 /* DataTypeConversion: '<S714>/Data Type Conversion2' */
19688 L4_MABX_B.DataTypeConversion2_pi = L4_MABX_B.DataTypeConversion_o0[7];
19689
19690 /* ArithShift: '<S714>/Shift Arithmetic1' */
19691 L4_MABX_B.ShiftArithmetic1_d = L4_MABX_B.DataTypeConversion1_d2 << 8;
19692
19693 /* ArithShift: '<S714>/Shift Arithmetic2' */
19694 L4_MABX_B.ShiftArithmetic2_m = L4_MABX_B.DataTypeConversion2_pi << 16;
19695
19696 /* S-Function (sfix_bitop): '<S716>/Operator' */
19697 L4_MABX_B.Operator_i = L4_MABX_B.DataTypeConversion_av |
19698 L4_MABX_B.ShiftArithmetic1_d | L4_MABX_B.ShiftArithmetic2_m;
19699
19700 /* DataTypeConversion: '<S716>/DataType' */
19701 L4_MABX_B.DataType_nq = L4_MABX_B.Operator_i;
19702 }
19703
19704 /* End of Outputs for SubSystem: '<S464>/Decode_TPCM_EndOfMessageAck' */
19705
19706 /* RelationalOperator: '<S687>/Operator' incorporates:
19707 * Constant: '<S464>/Constant'
19708 */
19709 L4_MABX_B.Operator_nl1 = (L4_MABX_B.DataTypeConversion_o0[0] ==
19710 L4_MABX_P.Constant_Value_cj);
19711
19712 /* Outputs for Enabled SubSystem: '<S464>/Decode_TPCM_RTS' incorporates:
19713 * EnablePort: '<S686>/Enable'
19714 */
19715 if (L4_MABX_B.Operator_nl1) {
19716 /* SignalConversion: '<S718>/Signal Conversion' */
19717 L4_MABX_B.SPN2556_ControlByte = L4_MABX_B.DataTypeConversion_o0[0];
19718
19719 /* DataTypeConversion: '<S719>/Data Type Conversion' */
19720 L4_MABX_B.DataTypeConversion_c = L4_MABX_B.DataTypeConversion_o0[1];
19721
19722 /* DataTypeConversion: '<S719>/Data Type Conversion1' */
19723 L4_MABX_B.DataTypeConversion1_bn = L4_MABX_B.DataTypeConversion_o0[2];
19724
19725 /* ArithShift: '<S719>/Shift Arithmetic2' */
19726 L4_MABX_B.ShiftArithmetic2_n = (uint16_T)(L4_MABX_B.DataTypeConversion1_bn <<
19727 8);
19728
19729 /* S-Function (sfix_bitop): '<S723>/Operator' */
19730 L4_MABX_B.Operator_kr = (uint16_T)(L4_MABX_B.DataTypeConversion_c |
19731 L4_MABX_B.ShiftArithmetic2_n);
19732
19733 /* DataTypeConversion: '<S723>/DataType' */
19734 L4_MABX_B.DataType_lo = L4_MABX_B.Operator_kr;
19735
19736 /* SignalConversion: '<S720>/Signal Conversion' */
19737 L4_MABX_B.SPN2558_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_o0[3];
19738
19739 /* SignalConversion: '<S721>/Signal Conversion' */
19740 L4_MABX_B.SPN2559_MaximumNumberOfPackets = L4_MABX_B.DataTypeConversion_o0[4];
19741
19742 /* DataTypeConversion: '<S722>/Data Type Conversion' */
19743 L4_MABX_B.DataTypeConversion_hs = L4_MABX_B.DataTypeConversion_o0[5];
19744
19745 /* DataTypeConversion: '<S722>/Data Type Conversion1' */
19746 L4_MABX_B.DataTypeConversion1_nb = L4_MABX_B.DataTypeConversion_o0[6];
19747
19748 /* DataTypeConversion: '<S722>/Data Type Conversion2' */
19749 L4_MABX_B.DataTypeConversion2_h5 = L4_MABX_B.DataTypeConversion_o0[7];
19750
19751 /* ArithShift: '<S722>/Shift Arithmetic1' */
19752 L4_MABX_B.ShiftArithmetic1 = L4_MABX_B.DataTypeConversion1_nb << 8;
19753
19754 /* ArithShift: '<S722>/Shift Arithmetic2' */
19755 L4_MABX_B.ShiftArithmetic2 = L4_MABX_B.DataTypeConversion2_h5 << 16;
19756
19757 /* S-Function (sfix_bitop): '<S724>/Operator' */
19758 L4_MABX_B.Operator_l2 = L4_MABX_B.DataTypeConversion_hs |
19759 L4_MABX_B.ShiftArithmetic1 | L4_MABX_B.ShiftArithmetic2;
19760
19761 /* DataTypeConversion: '<S724>/DataType' */
19762 L4_MABX_B.DataType_akh = L4_MABX_B.Operator_l2;
19763 }
19764
19765 /* End of Outputs for SubSystem: '<S464>/Decode_TPCM_RTS' */
19766
19767 /* RelationalOperator: '<S584>/Operator' incorporates:
19768 * Constant: '<S439>/Constant'
19769 * Constant: '<S580>/Constant'
19770 */
19771 L4_MABX_B.Operator_pa = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant_Value_in);
19772
19773 /* Outputs for Enabled SubSystem: '<S577>/CAN_TYPE1_RX_M1_C1' incorporates:
19774 * EnablePort: '<S581>/Enable'
19775 */
19776 if (L4_MABX_B.Operator_pa) {
19777 /* S-Function (rti_commonblock): '<S581>/S-Function1' */
19778 /* This comment workarounds a code generation problem */
19779
19780 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
19781 {
19782 UInt32 *CAN_Msg;
19783 static dsfloat time_old = 0.0;
19784
19785 /* Read status and timestamp info (previous message) */
19786 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].timestamp !=
19787 time_old) {
19788 /* ... save timestamp info for the calculation of the RX status
19789 during the consecutive sample hit*/
19790 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].
19791 timestamp;
19792
19793 /* ... set the processed flag to one */
19794 L4_MABX_B.SFunction1_o9_bp = 1.0;
19795 L4_MABX_B.SFunction1_o10_dd = (real_T)
19796 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].timestamp;
19797 L4_MABX_B.SFunction1_o11_gh = (real_T)
19798 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].deltatime;
19799 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].data;
19800
19801 /* Decode CAN message */
19802 {
19803 {
19804 rtican_Signal_t CAN_Sgn;
19805
19806 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
19807 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19808 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19809 L4_MABX_B.SFunction1_o1_ff = ((real_T) CAN_Sgn.UnsignedSgn);
19810
19811 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
19812 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19813 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19814 L4_MABX_B.SFunction1_o2_hs = ((real_T) CAN_Sgn.UnsignedSgn);
19815
19816 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
19817 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19818 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19819 L4_MABX_B.SFunction1_o3_iu = ((real_T) CAN_Sgn.UnsignedSgn);
19820
19821 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
19822 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19823 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19824 L4_MABX_B.SFunction1_o4_hk = ((real_T) CAN_Sgn.UnsignedSgn);
19825
19826 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
19827 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19828 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19829 L4_MABX_B.SFunction1_o5_dj = ((real_T) CAN_Sgn.UnsignedSgn);
19830
19831 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
19832 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
19833 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19834 L4_MABX_B.SFunction1_o6_a = ((real_T) CAN_Sgn.UnsignedSgn);
19835
19836 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
19837 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19838 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19839 L4_MABX_B.SFunction1_o7_hj = ((real_T) CAN_Sgn.UnsignedSgn);
19840
19841 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
19842 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
19843 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19844 L4_MABX_B.SFunction1_o8_f = ((real_T) CAN_Sgn.UnsignedSgn);
19845 }
19846 }
19847 } else {
19848 /* set RX status to 0 because no new message has arrived */
19849 L4_MABX_B.SFunction1_o9_bp = 0.0;
19850 }
19851 }
19852 }
19853
19854 /* End of Outputs for SubSystem: '<S577>/CAN_TYPE1_RX_M1_C1' */
19855
19856 /* RelationalOperator: '<S585>/Operator' incorporates:
19857 * Constant: '<S439>/Constant'
19858 * Constant: '<S580>/Constant1'
19859 */
19860 L4_MABX_B.Operator_lw = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant1_Value_h);
19861
19862 /* Outputs for Enabled SubSystem: '<S578>/CAN_TYPE1_RX_M1_C2' incorporates:
19863 * EnablePort: '<S582>/Enable'
19864 */
19865 if (L4_MABX_B.Operator_lw) {
19866 /* S-Function (rti_commonblock): '<S582>/S-Function1' */
19867 /* This comment workarounds a code generation problem */
19868
19869 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
19870 {
19871 UInt32 *CAN_Msg;
19872 static dsfloat time_old = 0.0;
19873
19874 /* Read status and timestamp info (previous message) */
19875 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].timestamp !=
19876 time_old) {
19877 /* ... save timestamp info for the calculation of the RX status
19878 during the consecutive sample hit*/
19879 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].
19880 timestamp;
19881
19882 /* ... set the processed flag to one */
19883 L4_MABX_B.SFunction1_o9_bh = 1.0;
19884 L4_MABX_B.SFunction1_o10_j = (real_T)
19885 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].timestamp;
19886 L4_MABX_B.SFunction1_o11_n = (real_T)
19887 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].deltatime;
19888 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].data;
19889
19890 /* Decode CAN message */
19891 {
19892 {
19893 rtican_Signal_t CAN_Sgn;
19894
19895 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
19896 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19897 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19898 L4_MABX_B.SFunction1_o1_df = ((real_T) CAN_Sgn.UnsignedSgn);
19899
19900 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
19901 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19902 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19903 L4_MABX_B.SFunction1_o2_bg = ((real_T) CAN_Sgn.UnsignedSgn);
19904
19905 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
19906 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19907 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19908 L4_MABX_B.SFunction1_o3_py = ((real_T) CAN_Sgn.UnsignedSgn);
19909
19910 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
19911 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19912 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19913 L4_MABX_B.SFunction1_o4_hw = ((real_T) CAN_Sgn.UnsignedSgn);
19914
19915 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
19916 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19917 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19918 L4_MABX_B.SFunction1_o5_bl = ((real_T) CAN_Sgn.UnsignedSgn);
19919
19920 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
19921 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
19922 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19923 L4_MABX_B.SFunction1_o6_fv = ((real_T) CAN_Sgn.UnsignedSgn);
19924
19925 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
19926 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19927 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19928 L4_MABX_B.SFunction1_o7_hr = ((real_T) CAN_Sgn.UnsignedSgn);
19929
19930 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
19931 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
19932 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19933 L4_MABX_B.SFunction1_o8_ll = ((real_T) CAN_Sgn.UnsignedSgn);
19934 }
19935 }
19936 } else {
19937 /* set RX status to 0 because no new message has arrived */
19938 L4_MABX_B.SFunction1_o9_bh = 0.0;
19939 }
19940 }
19941 }
19942
19943 /* End of Outputs for SubSystem: '<S578>/CAN_TYPE1_RX_M1_C2' */
19944
19945 /* DataTypeConversion: '<S578>/Data Type Conversion' */
19946 PositionFinalLimited = L4_MABX_B.SFunction1_o1_df;
19947 if (PositionFinalLimited < 256.0) {
19948 if (PositionFinalLimited >= 0.0) {
19949 starting_index = (uint8_T)PositionFinalLimited;
19950 } else {
19951 starting_index = 0U;
19952 }
19953 } else {
19954 starting_index = MAX_uint8_T;
19955 }
19956
19957 L4_MABX_B.DataTypeConversion_pnh = starting_index;
19958
19959 /* End of DataTypeConversion: '<S578>/Data Type Conversion' */
19960
19961 /* DataTypeConversion: '<S578>/Data Type Conversion1' */
19962 PositionFinalLimited = L4_MABX_B.SFunction1_o2_bg;
19963 if (PositionFinalLimited < 256.0) {
19964 if (PositionFinalLimited >= 0.0) {
19965 starting_index = (uint8_T)PositionFinalLimited;
19966 } else {
19967 starting_index = 0U;
19968 }
19969 } else {
19970 starting_index = MAX_uint8_T;
19971 }
19972
19973 L4_MABX_B.DataTypeConversion1_g3 = starting_index;
19974
19975 /* End of DataTypeConversion: '<S578>/Data Type Conversion1' */
19976
19977 /* DataTypeConversion: '<S578>/Data Type Conversion2' */
19978 PositionFinalLimited = L4_MABX_B.SFunction1_o3_py;
19979 if (PositionFinalLimited < 256.0) {
19980 if (PositionFinalLimited >= 0.0) {
19981 starting_index = (uint8_T)PositionFinalLimited;
19982 } else {
19983 starting_index = 0U;
19984 }
19985 } else {
19986 starting_index = MAX_uint8_T;
19987 }
19988
19989 L4_MABX_B.DataTypeConversion2_d = starting_index;
19990
19991 /* End of DataTypeConversion: '<S578>/Data Type Conversion2' */
19992
19993 /* DataTypeConversion: '<S578>/Data Type Conversion3' */
19994 PositionFinalLimited = L4_MABX_B.SFunction1_o4_hw;
19995 if (PositionFinalLimited < 256.0) {
19996 if (PositionFinalLimited >= 0.0) {
19997 starting_index = (uint8_T)PositionFinalLimited;
19998 } else {
19999 starting_index = 0U;
20000 }
20001 } else {
20002 starting_index = MAX_uint8_T;
20003 }
20004
20005 L4_MABX_B.DataTypeConversion3_n = starting_index;
20006
20007 /* End of DataTypeConversion: '<S578>/Data Type Conversion3' */
20008
20009 /* DataTypeConversion: '<S578>/Data Type Conversion4' */
20010 PositionFinalLimited = L4_MABX_B.SFunction1_o5_bl;
20011 if (PositionFinalLimited < 256.0) {
20012 if (PositionFinalLimited >= 0.0) {
20013 starting_index = (uint8_T)PositionFinalLimited;
20014 } else {
20015 starting_index = 0U;
20016 }
20017 } else {
20018 starting_index = MAX_uint8_T;
20019 }
20020
20021 L4_MABX_B.DataTypeConversion4_iu = starting_index;
20022
20023 /* End of DataTypeConversion: '<S578>/Data Type Conversion4' */
20024
20025 /* DataTypeConversion: '<S578>/Data Type Conversion5' */
20026 PositionFinalLimited = L4_MABX_B.SFunction1_o6_fv;
20027 if (PositionFinalLimited < 256.0) {
20028 if (PositionFinalLimited >= 0.0) {
20029 starting_index = (uint8_T)PositionFinalLimited;
20030 } else {
20031 starting_index = 0U;
20032 }
20033 } else {
20034 starting_index = MAX_uint8_T;
20035 }
20036
20037 L4_MABX_B.DataTypeConversion5_d = starting_index;
20038
20039 /* End of DataTypeConversion: '<S578>/Data Type Conversion5' */
20040
20041 /* DataTypeConversion: '<S578>/Data Type Conversion6' */
20042 PositionFinalLimited = L4_MABX_B.SFunction1_o7_hr;
20043 if (PositionFinalLimited < 256.0) {
20044 if (PositionFinalLimited >= 0.0) {
20045 starting_index = (uint8_T)PositionFinalLimited;
20046 } else {
20047 starting_index = 0U;
20048 }
20049 } else {
20050 starting_index = MAX_uint8_T;
20051 }
20052
20053 L4_MABX_B.DataTypeConversion6_ic = starting_index;
20054
20055 /* End of DataTypeConversion: '<S578>/Data Type Conversion6' */
20056
20057 /* DataTypeConversion: '<S578>/Data Type Conversion7' */
20058 PositionFinalLimited = L4_MABX_B.SFunction1_o8_ll;
20059 if (PositionFinalLimited < 256.0) {
20060 if (PositionFinalLimited >= 0.0) {
20061 starting_index = (uint8_T)PositionFinalLimited;
20062 } else {
20063 starting_index = 0U;
20064 }
20065 } else {
20066 starting_index = MAX_uint8_T;
20067 }
20068
20069 L4_MABX_B.DataTypeConversion7_c = starting_index;
20070
20071 /* End of DataTypeConversion: '<S578>/Data Type Conversion7' */
20072
20073 /* RelationalOperator: '<S589>/Operator' incorporates:
20074 * Constant: '<S439>/Constant'
20075 * Constant: '<S580>/Constant5'
20076 */
20077 L4_MABX_B.Operator_cm = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant5_Value_d);
20078
20079 /* Outputs for Enabled SubSystem: '<S579>/CAN_TYPE1_RX_M3_C2' incorporates:
20080 * EnablePort: '<S583>/Enable'
20081 */
20082 if (L4_MABX_B.Operator_cm) {
20083 /* S-Function (rti_commonblock): '<S583>/S-Function1' */
20084 /* This comment workarounds a code generation problem */
20085
20086 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:486535443 */
20087 {
20088 UInt32 *CAN_Msg;
20089 static dsfloat time_old = 0.0;
20090
20091 /* Read status and timestamp info (previous message) */
20092 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].timestamp !=
20093 time_old) {
20094 /* ... save timestamp info for the calculation of the RX status
20095 during the consecutive sample hit*/
20096 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].
20097 timestamp;
20098
20099 /* ... set the processed flag to one */
20100 L4_MABX_B.SFunction1_o9_hy = 1.0;
20101 L4_MABX_B.SFunction1_o10_n = (real_T)
20102 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].timestamp;
20103 L4_MABX_B.SFunction1_o11_a = (real_T)
20104 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].deltatime;
20105 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].data;
20106
20107 /* Decode CAN message */
20108 {
20109 {
20110 rtican_Signal_t CAN_Sgn;
20111
20112 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20113 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20114 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20115 L4_MABX_B.SFunction1_o1_dh = ((real_T) CAN_Sgn.UnsignedSgn);
20116
20117 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20118 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20119 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20120 L4_MABX_B.SFunction1_o2_cj = ((real_T) CAN_Sgn.UnsignedSgn);
20121
20122 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20123 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20124 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20125 L4_MABX_B.SFunction1_o3_mk = ((real_T) CAN_Sgn.UnsignedSgn);
20126
20127 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20128 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20129 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20130 L4_MABX_B.SFunction1_o4_gj = ((real_T) CAN_Sgn.UnsignedSgn);
20131
20132 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20133 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20134 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20135 L4_MABX_B.SFunction1_o5_ha = ((real_T) CAN_Sgn.UnsignedSgn);
20136
20137 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20138 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20139 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20140 L4_MABX_B.SFunction1_o6_h = ((real_T) CAN_Sgn.UnsignedSgn);
20141
20142 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20143 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20144 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20145 L4_MABX_B.SFunction1_o7_pc = ((real_T) CAN_Sgn.UnsignedSgn);
20146
20147 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20148 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20149 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20150 L4_MABX_B.SFunction1_o8_j = ((real_T) CAN_Sgn.UnsignedSgn);
20151 }
20152 }
20153 } else {
20154 /* set RX status to 0 because no new message has arrived */
20155 L4_MABX_B.SFunction1_o9_hy = 0.0;
20156 }
20157 }
20158 }
20159
20160 /* End of Outputs for SubSystem: '<S579>/CAN_TYPE1_RX_M3_C2' */
20161
20162 /* DataTypeConversion: '<S579>/Data Type Conversion' */
20163 PositionFinalLimited = L4_MABX_B.SFunction1_o1_dh;
20164 if (PositionFinalLimited < 256.0) {
20165 if (PositionFinalLimited >= 0.0) {
20166 starting_index = (uint8_T)PositionFinalLimited;
20167 } else {
20168 starting_index = 0U;
20169 }
20170 } else {
20171 starting_index = MAX_uint8_T;
20172 }
20173
20174 L4_MABX_B.DataTypeConversion_bk = starting_index;
20175
20176 /* End of DataTypeConversion: '<S579>/Data Type Conversion' */
20177
20178 /* DataTypeConversion: '<S579>/Data Type Conversion1' */
20179 PositionFinalLimited = L4_MABX_B.SFunction1_o2_cj;
20180 if (PositionFinalLimited < 256.0) {
20181 if (PositionFinalLimited >= 0.0) {
20182 starting_index = (uint8_T)PositionFinalLimited;
20183 } else {
20184 starting_index = 0U;
20185 }
20186 } else {
20187 starting_index = MAX_uint8_T;
20188 }
20189
20190 L4_MABX_B.DataTypeConversion1_i5 = starting_index;
20191
20192 /* End of DataTypeConversion: '<S579>/Data Type Conversion1' */
20193
20194 /* DataTypeConversion: '<S579>/Data Type Conversion2' */
20195 PositionFinalLimited = L4_MABX_B.SFunction1_o3_mk;
20196 if (PositionFinalLimited < 256.0) {
20197 if (PositionFinalLimited >= 0.0) {
20198 starting_index = (uint8_T)PositionFinalLimited;
20199 } else {
20200 starting_index = 0U;
20201 }
20202 } else {
20203 starting_index = MAX_uint8_T;
20204 }
20205
20206 L4_MABX_B.DataTypeConversion2_b5 = starting_index;
20207
20208 /* End of DataTypeConversion: '<S579>/Data Type Conversion2' */
20209
20210 /* DataTypeConversion: '<S579>/Data Type Conversion3' */
20211 PositionFinalLimited = L4_MABX_B.SFunction1_o4_gj;
20212 if (PositionFinalLimited < 256.0) {
20213 if (PositionFinalLimited >= 0.0) {
20214 starting_index = (uint8_T)PositionFinalLimited;
20215 } else {
20216 starting_index = 0U;
20217 }
20218 } else {
20219 starting_index = MAX_uint8_T;
20220 }
20221
20222 L4_MABX_B.DataTypeConversion3_k0 = starting_index;
20223
20224 /* End of DataTypeConversion: '<S579>/Data Type Conversion3' */
20225
20226 /* DataTypeConversion: '<S579>/Data Type Conversion4' */
20227 PositionFinalLimited = L4_MABX_B.SFunction1_o5_ha;
20228 if (PositionFinalLimited < 256.0) {
20229 if (PositionFinalLimited >= 0.0) {
20230 starting_index = (uint8_T)PositionFinalLimited;
20231 } else {
20232 starting_index = 0U;
20233 }
20234 } else {
20235 starting_index = MAX_uint8_T;
20236 }
20237
20238 L4_MABX_B.DataTypeConversion4_k = starting_index;
20239
20240 /* End of DataTypeConversion: '<S579>/Data Type Conversion4' */
20241
20242 /* DataTypeConversion: '<S579>/Data Type Conversion5' */
20243 PositionFinalLimited = L4_MABX_B.SFunction1_o6_h;
20244 if (PositionFinalLimited < 256.0) {
20245 if (PositionFinalLimited >= 0.0) {
20246 starting_index = (uint8_T)PositionFinalLimited;
20247 } else {
20248 starting_index = 0U;
20249 }
20250 } else {
20251 starting_index = MAX_uint8_T;
20252 }
20253
20254 L4_MABX_B.DataTypeConversion5_cp = starting_index;
20255
20256 /* End of DataTypeConversion: '<S579>/Data Type Conversion5' */
20257
20258 /* DataTypeConversion: '<S579>/Data Type Conversion6' */
20259 PositionFinalLimited = L4_MABX_B.SFunction1_o7_pc;
20260 if (PositionFinalLimited < 256.0) {
20261 if (PositionFinalLimited >= 0.0) {
20262 starting_index = (uint8_T)PositionFinalLimited;
20263 } else {
20264 starting_index = 0U;
20265 }
20266 } else {
20267 starting_index = MAX_uint8_T;
20268 }
20269
20270 L4_MABX_B.DataTypeConversion6_op = starting_index;
20271
20272 /* End of DataTypeConversion: '<S579>/Data Type Conversion6' */
20273
20274 /* DataTypeConversion: '<S579>/Data Type Conversion7' */
20275 PositionFinalLimited = L4_MABX_B.SFunction1_o8_j;
20276 if (PositionFinalLimited < 256.0) {
20277 if (PositionFinalLimited >= 0.0) {
20278 starting_index = (uint8_T)PositionFinalLimited;
20279 } else {
20280 starting_index = 0U;
20281 }
20282 } else {
20283 starting_index = MAX_uint8_T;
20284 }
20285
20286 L4_MABX_B.DataTypeConversion7_l = starting_index;
20287
20288 /* End of DataTypeConversion: '<S579>/Data Type Conversion7' */
20289
20290 /* MultiPortSwitch: '<S439>/Multiport_Switch' incorporates:
20291 * Constant: '<S439>/Constant'
20292 */
20293 switch (PROPB_REAX_CHANNEL_APV) {
20294 case ENUM_CAN_RX_T_RX_CAN_1:
20295 /* DataTypeConversion: '<S577>/Data Type Conversion' */
20296 PositionFinalLimited = L4_MABX_B.SFunction1_o1_ff;
20297 if (PositionFinalLimited < 256.0) {
20298 if (PositionFinalLimited >= 0.0) {
20299 starting_index = (uint8_T)PositionFinalLimited;
20300 } else {
20301 starting_index = 0U;
20302 }
20303 } else {
20304 starting_index = MAX_uint8_T;
20305 }
20306
20307 L4_MABX_B.DataTypeConversion_om = starting_index;
20308
20309 /* End of DataTypeConversion: '<S577>/Data Type Conversion' */
20310
20311 /* DataTypeConversion: '<S577>/Data Type Conversion1' */
20312 PositionFinalLimited = L4_MABX_B.SFunction1_o2_hs;
20313 if (PositionFinalLimited < 256.0) {
20314 if (PositionFinalLimited >= 0.0) {
20315 starting_index = (uint8_T)PositionFinalLimited;
20316 } else {
20317 starting_index = 0U;
20318 }
20319 } else {
20320 starting_index = MAX_uint8_T;
20321 }
20322
20323 L4_MABX_B.DataTypeConversion1_ka = starting_index;
20324
20325 /* End of DataTypeConversion: '<S577>/Data Type Conversion1' */
20326
20327 /* DataTypeConversion: '<S577>/Data Type Conversion2' */
20328 PositionFinalLimited = L4_MABX_B.SFunction1_o3_iu;
20329 if (PositionFinalLimited < 256.0) {
20330 if (PositionFinalLimited >= 0.0) {
20331 starting_index = (uint8_T)PositionFinalLimited;
20332 } else {
20333 starting_index = 0U;
20334 }
20335 } else {
20336 starting_index = MAX_uint8_T;
20337 }
20338
20339 L4_MABX_B.DataTypeConversion2_b2 = starting_index;
20340
20341 /* End of DataTypeConversion: '<S577>/Data Type Conversion2' */
20342
20343 /* DataTypeConversion: '<S577>/Data Type Conversion3' */
20344 PositionFinalLimited = L4_MABX_B.SFunction1_o4_hk;
20345 if (PositionFinalLimited < 256.0) {
20346 if (PositionFinalLimited >= 0.0) {
20347 starting_index = (uint8_T)PositionFinalLimited;
20348 } else {
20349 starting_index = 0U;
20350 }
20351 } else {
20352 starting_index = MAX_uint8_T;
20353 }
20354
20355 L4_MABX_B.DataTypeConversion3_o2 = starting_index;
20356
20357 /* End of DataTypeConversion: '<S577>/Data Type Conversion3' */
20358
20359 /* DataTypeConversion: '<S577>/Data Type Conversion4' */
20360 PositionFinalLimited = L4_MABX_B.SFunction1_o5_dj;
20361 if (PositionFinalLimited < 256.0) {
20362 if (PositionFinalLimited >= 0.0) {
20363 starting_index = (uint8_T)PositionFinalLimited;
20364 } else {
20365 starting_index = 0U;
20366 }
20367 } else {
20368 starting_index = MAX_uint8_T;
20369 }
20370
20371 L4_MABX_B.DataTypeConversion4_mv = starting_index;
20372
20373 /* End of DataTypeConversion: '<S577>/Data Type Conversion4' */
20374
20375 /* DataTypeConversion: '<S577>/Data Type Conversion5' */
20376 PositionFinalLimited = L4_MABX_B.SFunction1_o6_a;
20377 if (PositionFinalLimited < 256.0) {
20378 if (PositionFinalLimited >= 0.0) {
20379 starting_index = (uint8_T)PositionFinalLimited;
20380 } else {
20381 starting_index = 0U;
20382 }
20383 } else {
20384 starting_index = MAX_uint8_T;
20385 }
20386
20387 L4_MABX_B.DataTypeConversion5_dk = starting_index;
20388
20389 /* End of DataTypeConversion: '<S577>/Data Type Conversion5' */
20390
20391 /* DataTypeConversion: '<S577>/Data Type Conversion6' */
20392 PositionFinalLimited = L4_MABX_B.SFunction1_o7_hj;
20393 if (PositionFinalLimited < 256.0) {
20394 if (PositionFinalLimited >= 0.0) {
20395 starting_index = (uint8_T)PositionFinalLimited;
20396 } else {
20397 starting_index = 0U;
20398 }
20399 } else {
20400 starting_index = MAX_uint8_T;
20401 }
20402
20403 L4_MABX_B.DataTypeConversion6_hz = starting_index;
20404
20405 /* End of DataTypeConversion: '<S577>/Data Type Conversion6' */
20406
20407 /* DataTypeConversion: '<S577>/Data Type Conversion7' */
20408 PositionFinalLimited = L4_MABX_B.SFunction1_o8_f;
20409 if (PositionFinalLimited < 256.0) {
20410 if (PositionFinalLimited >= 0.0) {
20411 starting_index = (uint8_T)PositionFinalLimited;
20412 } else {
20413 starting_index = 0U;
20414 }
20415 } else {
20416 starting_index = MAX_uint8_T;
20417 }
20418
20419 L4_MABX_B.DataTypeConversion7_k = starting_index;
20420
20421 /* End of DataTypeConversion: '<S577>/Data Type Conversion7' */
20422 L4_MABX_B.RawData_a[0] = L4_MABX_B.DataTypeConversion_om;
20423 L4_MABX_B.RawData_a[1] = L4_MABX_B.DataTypeConversion1_ka;
20424 L4_MABX_B.RawData_a[2] = L4_MABX_B.DataTypeConversion2_b2;
20425 L4_MABX_B.RawData_a[3] = L4_MABX_B.DataTypeConversion3_o2;
20426 L4_MABX_B.RawData_a[4] = L4_MABX_B.DataTypeConversion4_mv;
20427 L4_MABX_B.RawData_a[5] = L4_MABX_B.DataTypeConversion5_dk;
20428 L4_MABX_B.RawData_a[6] = L4_MABX_B.DataTypeConversion6_hz;
20429 L4_MABX_B.RawData_a[7] = L4_MABX_B.DataTypeConversion7_k;
20430 break;
20431
20432 case ENUM_CAN_RX_T_RX_CAN_2:
20433 L4_MABX_B.RawData_a[0] = L4_MABX_B.DataTypeConversion_pnh;
20434 L4_MABX_B.RawData_a[1] = L4_MABX_B.DataTypeConversion1_g3;
20435 L4_MABX_B.RawData_a[2] = L4_MABX_B.DataTypeConversion2_d;
20436 L4_MABX_B.RawData_a[3] = L4_MABX_B.DataTypeConversion3_n;
20437 L4_MABX_B.RawData_a[4] = L4_MABX_B.DataTypeConversion4_iu;
20438 L4_MABX_B.RawData_a[5] = L4_MABX_B.DataTypeConversion5_d;
20439 L4_MABX_B.RawData_a[6] = L4_MABX_B.DataTypeConversion6_ic;
20440 L4_MABX_B.RawData_a[7] = L4_MABX_B.DataTypeConversion7_c;
20441 break;
20442
20443 case ENUM_CAN_RX_T_RX_CAN_3:
20444 L4_MABX_B.RawData_a[0] = L4_MABX_B.DataTypeConversion_pnh;
20445 L4_MABX_B.RawData_a[1] = L4_MABX_B.DataTypeConversion1_g3;
20446 L4_MABX_B.RawData_a[2] = L4_MABX_B.DataTypeConversion2_d;
20447 L4_MABX_B.RawData_a[3] = L4_MABX_B.DataTypeConversion3_n;
20448 L4_MABX_B.RawData_a[4] = L4_MABX_B.DataTypeConversion4_iu;
20449 L4_MABX_B.RawData_a[5] = L4_MABX_B.DataTypeConversion5_d;
20450 L4_MABX_B.RawData_a[6] = L4_MABX_B.DataTypeConversion6_ic;
20451 L4_MABX_B.RawData_a[7] = L4_MABX_B.DataTypeConversion7_c;
20452 break;
20453
20454 case ENUM_CAN_RX_T_RX_CAN_4:
20455 L4_MABX_B.RawData_a[0] = L4_MABX_B.DataTypeConversion_pnh;
20456 L4_MABX_B.RawData_a[1] = L4_MABX_B.DataTypeConversion1_g3;
20457 L4_MABX_B.RawData_a[2] = L4_MABX_B.DataTypeConversion2_d;
20458 L4_MABX_B.RawData_a[3] = L4_MABX_B.DataTypeConversion3_n;
20459 L4_MABX_B.RawData_a[4] = L4_MABX_B.DataTypeConversion4_iu;
20460 L4_MABX_B.RawData_a[5] = L4_MABX_B.DataTypeConversion5_d;
20461 L4_MABX_B.RawData_a[6] = L4_MABX_B.DataTypeConversion6_ic;
20462 L4_MABX_B.RawData_a[7] = L4_MABX_B.DataTypeConversion7_c;
20463 break;
20464
20465 case ENUM_CAN_RX_T_RX_CAN_5:
20466 L4_MABX_B.RawData_a[0] = L4_MABX_B.DataTypeConversion_pnh;
20467 L4_MABX_B.RawData_a[1] = L4_MABX_B.DataTypeConversion1_g3;
20468 L4_MABX_B.RawData_a[2] = L4_MABX_B.DataTypeConversion2_d;
20469 L4_MABX_B.RawData_a[3] = L4_MABX_B.DataTypeConversion3_n;
20470 L4_MABX_B.RawData_a[4] = L4_MABX_B.DataTypeConversion4_iu;
20471 L4_MABX_B.RawData_a[5] = L4_MABX_B.DataTypeConversion5_d;
20472 L4_MABX_B.RawData_a[6] = L4_MABX_B.DataTypeConversion6_ic;
20473 L4_MABX_B.RawData_a[7] = L4_MABX_B.DataTypeConversion7_c;
20474 break;
20475
20476 case ENUM_CAN_RX_T_RX_CAN_6:
20477 L4_MABX_B.RawData_a[0] = L4_MABX_B.DataTypeConversion_bk;
20478 L4_MABX_B.RawData_a[1] = L4_MABX_B.DataTypeConversion1_i5;
20479 L4_MABX_B.RawData_a[2] = L4_MABX_B.DataTypeConversion2_b5;
20480 L4_MABX_B.RawData_a[3] = L4_MABX_B.DataTypeConversion3_k0;
20481 L4_MABX_B.RawData_a[4] = L4_MABX_B.DataTypeConversion4_k;
20482 L4_MABX_B.RawData_a[5] = L4_MABX_B.DataTypeConversion5_cp;
20483 L4_MABX_B.RawData_a[6] = L4_MABX_B.DataTypeConversion6_op;
20484 L4_MABX_B.RawData_a[7] = L4_MABX_B.DataTypeConversion7_l;
20485 break;
20486
20487 default:
20488 L4_MABX_B.RawData_a[0] = L4_MABX_B.DataTypeConversion_bk;
20489 L4_MABX_B.RawData_a[1] = L4_MABX_B.DataTypeConversion1_i5;
20490 L4_MABX_B.RawData_a[2] = L4_MABX_B.DataTypeConversion2_b5;
20491 L4_MABX_B.RawData_a[3] = L4_MABX_B.DataTypeConversion3_k0;
20492 L4_MABX_B.RawData_a[4] = L4_MABX_B.DataTypeConversion4_k;
20493 L4_MABX_B.RawData_a[5] = L4_MABX_B.DataTypeConversion5_cp;
20494 L4_MABX_B.RawData_a[6] = L4_MABX_B.DataTypeConversion6_op;
20495 L4_MABX_B.RawData_a[7] = L4_MABX_B.DataTypeConversion7_l;
20496 break;
20497 }
20498
20499 /* S-Function (sfix_bitop): '<S667>/Operator' */
20500 L4_MABX_B.Operator_ay = (uint8_T)(L4_MABX_B.RawData_a[0] &
20501 L4_MABX_P.Operator_BitMask_nm);
20502
20503 /* DataTypeConversion: '<S667>/DataType' */
20504 L4_MABX_B.DataType_jh = L4_MABX_B.Operator_ay;
20505
20506 /* DataTypeConversion: '<S414>/Data Type Conversion' */
20507 REAX_Current_Mode = L4_MABX_B.DataType_jh;
20508
20509 /* S-Function (sfix_bitop): '<S666>/Operator' */
20510 L4_MABX_B.Operator_bq = (uint8_T)(L4_MABX_B.RawData_a[0] &
20511 L4_MABX_P.Operator_BitMask_dv);
20512
20513 /* DataTypeConversion: '<S666>/DataType' */
20514 L4_MABX_B.DataType_ms = L4_MABX_B.Operator_bq;
20515
20516 /* ArithShift: '<S661>/Shift_Arithmetic ' */
20517 L4_MABX_B.PropB_REAX_3_ReqOperatingMode = (uint8_T)((uint32_T)
20518 L4_MABX_B.DataType_ms >> 4);
20519
20520 /* DataTypeConversion: '<S414>/Data Type Conversion1' */
20521 REAX_Req_Mode = L4_MABX_B.PropB_REAX_3_ReqOperatingMode;
20522
20523 /* DataTypeConversion: '<S414>/Data Type Conversion2' */
20524 REAX_Status = L4_MABX_B.RawData_a[1];
20525
20526 /* DataTypeConversion: '<S663>/Data Type Conversion1' */
20527 L4_MABX_B.DataTypeConversion1_ku = L4_MABX_B.RawData_a[2];
20528
20529 /* DataTypeConversion: '<S663>/Data Type Conversion2' */
20530 L4_MABX_B.DataTypeConversion2_pu = L4_MABX_B.RawData_a[3];
20531
20532 /* ArithShift: '<S663>/Shift_Arithmetic 1' */
20533 L4_MABX_B.Shift_Arithmetic1_j2 = (uint16_T)(L4_MABX_B.DataTypeConversion2_pu <<
20534 8);
20535
20536 /* S-Function (sfix_bitop): '<S668>/Operator' */
20537 L4_MABX_B.Operator_gn = (uint16_T)(L4_MABX_B.DataTypeConversion1_ku |
20538 L4_MABX_B.Shift_Arithmetic1_j2);
20539
20540 /* DataTypeConversion: '<S668>/DataType' */
20541 L4_MABX_B.DataType_ee = L4_MABX_B.Operator_gn;
20542
20543 /* DataTypeConversion: '<S663>/Data Type Conversion3' */
20544 L4_MABX_B.DataTypeConversion3_dk = (int16_T)L4_MABX_B.DataType_ee;
20545
20546 /* DataTypeConversion: '<S663>/Data Type Conversion4' */
20547 L4_MABX_B.DataTypeConversion4_d = L4_MABX_B.DataTypeConversion3_dk;
20548
20549 /* Product: '<S663>/Product' incorporates:
20550 * Constant: '<S663>/Constant'
20551 */
20552 L4_MABX_B.PropB_REAX_3_HandwheelTorque = (real32_T)
20553 (L4_MABX_B.DataTypeConversion4_d * L4_MABX_P.Constant_Value_bk);
20554
20555 /* DataTypeConversion: '<S414>/Data Type Conversion3' */
20556 REAX_Handwheel_Torque = L4_MABX_B.PropB_REAX_3_HandwheelTorque;
20557
20558 /* DataTypeConversion: '<S664>/Data Type Conversion4' */
20559 L4_MABX_B.DataTypeConversion4_ix = L4_MABX_B.RawData_a[4];
20560
20561 /* DataTypeConversion: '<S664>/Data Type Conversion5' */
20562 L4_MABX_B.DataTypeConversion5_b = L4_MABX_B.RawData_a[5];
20563
20564 /* ArithShift: '<S664>/Shift_Arithmetic 2' */
20565 L4_MABX_B.Shift_Arithmetic2_p = (uint16_T)(L4_MABX_B.DataTypeConversion5_b <<
20566 8);
20567
20568 /* S-Function (sfix_bitop): '<S669>/Operator' */
20569 L4_MABX_B.Operator_e = (uint16_T)(L4_MABX_B.DataTypeConversion4_ix |
20570 L4_MABX_B.Shift_Arithmetic2_p);
20571
20572 /* DataTypeConversion: '<S669>/DataType' */
20573 L4_MABX_B.DataType_ik = L4_MABX_B.Operator_e;
20574
20575 /* DataTypeConversion: '<S664>/Data Type Conversion6' */
20576 L4_MABX_B.DataTypeConversion6_b = (int16_T)L4_MABX_B.DataType_ik;
20577
20578 /* DataTypeConversion: '<S664>/Data Type Conversion1' */
20579 L4_MABX_B.DataTypeConversion1_a = L4_MABX_B.DataTypeConversion6_b;
20580
20581 /* Product: '<S664>/Product1' incorporates:
20582 * Constant: '<S664>/Constant1'
20583 */
20584 L4_MABX_B.PropB_REAX_3_HandwheelVelocity = (real32_T)
20585 (L4_MABX_B.DataTypeConversion1_a * L4_MABX_P.Constant1_Value_gv);
20586
20587 /* DataTypeConversion: '<S414>/Data Type Conversion4' */
20588 REAX_Handwheel_Velocity = L4_MABX_B.PropB_REAX_3_HandwheelVelocity;
20589
20590 /* DataTypeConversion: '<S665>/Data Type Conversion7' */
20591 L4_MABX_B.DataTypeConversion7_i3 = L4_MABX_B.RawData_a[6];
20592
20593 /* DataTypeConversion: '<S665>/Data Type Conversion8' */
20594 L4_MABX_B.DataTypeConversion8_l = L4_MABX_B.RawData_a[7];
20595
20596 /* ArithShift: '<S665>/Shift_Arithmetic 3' */
20597 L4_MABX_B.Shift_Arithmetic3_oc = (uint16_T)(L4_MABX_B.DataTypeConversion8_l <<
20598 8);
20599
20600 /* S-Function (sfix_bitop): '<S670>/Operator' */
20601 L4_MABX_B.Operator_ng = (uint16_T)(L4_MABX_B.DataTypeConversion7_i3 |
20602 L4_MABX_B.Shift_Arithmetic3_oc);
20603
20604 /* DataTypeConversion: '<S670>/DataType' */
20605 L4_MABX_B.DataType_pt = L4_MABX_B.Operator_ng;
20606
20607 /* DataTypeConversion: '<S665>/Data Type Conversion9' */
20608 L4_MABX_B.DataTypeConversion9_d = (int16_T)L4_MABX_B.DataType_pt;
20609
20610 /* DataTypeConversion: '<S665>/Data Type Conversion1' */
20611 L4_MABX_B.DataTypeConversion1_m = L4_MABX_B.DataTypeConversion9_d;
20612
20613 /* Product: '<S665>/Product2' incorporates:
20614 * Constant: '<S665>/Constant2'
20615 */
20616 L4_MABX_B.PropB_REAX_3_PullCompensation = (real32_T)
20617 (L4_MABX_B.DataTypeConversion1_m * L4_MABX_P.Constant2_Value_nj);
20618
20619 /* DataTypeConversion: '<S414>/Data Type Conversion5' */
20620 REAX_Pull_Compensation = L4_MABX_B.PropB_REAX_3_PullCompensation;
20621
20622 /* DataTypeConversion: '<S578>/Data Type Conversion8' */
20623 L4_MABX_B.RX_status_gy = (L4_MABX_B.SFunction1_o9_bh != 0.0);
20624
20625 /* DataTypeConversion: '<S579>/Data Type Conversion8' */
20626 L4_MABX_B.RX_status_ad2 = (L4_MABX_B.SFunction1_o9_hy != 0.0);
20627
20628 /* MultiPortSwitch: '<S439>/Multiport_Switch' incorporates:
20629 * Constant: '<S439>/Constant'
20630 */
20631 switch (PROPB_REAX_CHANNEL_APV) {
20632 case ENUM_CAN_RX_T_RX_CAN_1:
20633 /* DataTypeConversion: '<S577>/Data Type Conversion8' */
20634 L4_MABX_B.RX_status_ex = (L4_MABX_B.SFunction1_o9_bp != 0.0);
20635 L4_MABX_B.RX_status_cl = L4_MABX_B.RX_status_ex;
20636 break;
20637
20638 case ENUM_CAN_RX_T_RX_CAN_2:
20639 L4_MABX_B.RX_status_cl = L4_MABX_B.RX_status_gy;
20640 break;
20641
20642 case ENUM_CAN_RX_T_RX_CAN_3:
20643 L4_MABX_B.RX_status_cl = L4_MABX_B.RX_status_gy;
20644 break;
20645
20646 case ENUM_CAN_RX_T_RX_CAN_4:
20647 L4_MABX_B.RX_status_cl = L4_MABX_B.RX_status_gy;
20648 break;
20649
20650 case ENUM_CAN_RX_T_RX_CAN_5:
20651 L4_MABX_B.RX_status_cl = L4_MABX_B.RX_status_gy;
20652 break;
20653
20654 case ENUM_CAN_RX_T_RX_CAN_6:
20655 L4_MABX_B.RX_status_cl = L4_MABX_B.RX_status_ad2;
20656 break;
20657
20658 default:
20659 L4_MABX_B.RX_status_cl = L4_MABX_B.RX_status_ad2;
20660 break;
20661 }
20662
20663 /* DataTypeConversion: '<S578>/Data Type Conversion9' */
20664 L4_MABX_B.RX_time_e3 = L4_MABX_B.SFunction1_o10_j;
20665
20666 /* DataTypeConversion: '<S579>/Data Type Conversion9' */
20667 L4_MABX_B.RX_time_ky = L4_MABX_B.SFunction1_o10_n;
20668
20669 /* MultiPortSwitch: '<S439>/Multiport_Switch' incorporates:
20670 * Constant: '<S439>/Constant'
20671 */
20672 switch (PROPB_REAX_CHANNEL_APV) {
20673 case ENUM_CAN_RX_T_RX_CAN_1:
20674 /* DataTypeConversion: '<S577>/Data Type Conversion9' */
20675 L4_MABX_B.RX_time_g = L4_MABX_B.SFunction1_o10_dd;
20676 L4_MABX_B.RX_time_p1 = L4_MABX_B.RX_time_g;
20677 break;
20678
20679 case ENUM_CAN_RX_T_RX_CAN_2:
20680 L4_MABX_B.RX_time_p1 = L4_MABX_B.RX_time_e3;
20681 break;
20682
20683 case ENUM_CAN_RX_T_RX_CAN_3:
20684 L4_MABX_B.RX_time_p1 = L4_MABX_B.RX_time_e3;
20685 break;
20686
20687 case ENUM_CAN_RX_T_RX_CAN_4:
20688 L4_MABX_B.RX_time_p1 = L4_MABX_B.RX_time_e3;
20689 break;
20690
20691 case ENUM_CAN_RX_T_RX_CAN_5:
20692 L4_MABX_B.RX_time_p1 = L4_MABX_B.RX_time_e3;
20693 break;
20694
20695 case ENUM_CAN_RX_T_RX_CAN_6:
20696 L4_MABX_B.RX_time_p1 = L4_MABX_B.RX_time_ky;
20697 break;
20698
20699 default:
20700 L4_MABX_B.RX_time_p1 = L4_MABX_B.RX_time_ky;
20701 break;
20702 }
20703
20704 /* DataTypeConversion: '<S578>/Data Type Conversion10' */
20705 L4_MABX_B.RX_delta_time_k = L4_MABX_B.SFunction1_o11_n;
20706
20707 /* DataTypeConversion: '<S579>/Data Type Conversion10' */
20708 L4_MABX_B.RX_delta_time_my = L4_MABX_B.SFunction1_o11_a;
20709
20710 /* MultiPortSwitch: '<S439>/Multiport_Switch' incorporates:
20711 * Constant: '<S439>/Constant'
20712 */
20713 switch (PROPB_REAX_CHANNEL_APV) {
20714 case ENUM_CAN_RX_T_RX_CAN_1:
20715 /* DataTypeConversion: '<S577>/Data Type Conversion10' */
20716 L4_MABX_B.RX_delta_time_er = L4_MABX_B.SFunction1_o11_gh;
20717 L4_MABX_B.RX_delta_time_fg = L4_MABX_B.RX_delta_time_er;
20718 break;
20719
20720 case ENUM_CAN_RX_T_RX_CAN_2:
20721 L4_MABX_B.RX_delta_time_fg = L4_MABX_B.RX_delta_time_k;
20722 break;
20723
20724 case ENUM_CAN_RX_T_RX_CAN_3:
20725 L4_MABX_B.RX_delta_time_fg = L4_MABX_B.RX_delta_time_k;
20726 break;
20727
20728 case ENUM_CAN_RX_T_RX_CAN_4:
20729 L4_MABX_B.RX_delta_time_fg = L4_MABX_B.RX_delta_time_k;
20730 break;
20731
20732 case ENUM_CAN_RX_T_RX_CAN_5:
20733 L4_MABX_B.RX_delta_time_fg = L4_MABX_B.RX_delta_time_k;
20734 break;
20735
20736 case ENUM_CAN_RX_T_RX_CAN_6:
20737 L4_MABX_B.RX_delta_time_fg = L4_MABX_B.RX_delta_time_my;
20738 break;
20739
20740 default:
20741 L4_MABX_B.RX_delta_time_fg = L4_MABX_B.RX_delta_time_my;
20742 break;
20743 }
20744
20745 /* RelationalOperator: '<S586>/Operator' incorporates:
20746 * Constant: '<S439>/Constant'
20747 * Constant: '<S580>/Constant2'
20748 */
20749 L4_MABX_B.Operator_lgv = (PROPB_REAX_CHANNEL_APV ==
20750 L4_MABX_P.Constant2_Value_d);
20751
20752 /* RelationalOperator: '<S587>/Operator' incorporates:
20753 * Constant: '<S439>/Constant'
20754 * Constant: '<S580>/Constant3'
20755 */
20756 L4_MABX_B.Operator_ic = (PROPB_REAX_CHANNEL_APV ==
20757 L4_MABX_P.Constant3_Value_jc);
20758
20759 /* RelationalOperator: '<S588>/Operator' incorporates:
20760 * Constant: '<S439>/Constant'
20761 * Constant: '<S580>/Constant4'
20762 */
20763 L4_MABX_B.Operator_a0 = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant4_Value_p);
20764
20765 /* RelationalOperator: '<S597>/Operator' incorporates:
20766 * Constant: '<S440>/Constant'
20767 * Constant: '<S593>/Constant'
20768 */
20769 L4_MABX_B.Operator_d0 = (PROPB_REAX_CHANNEL_APV ==
20770 L4_MABX_P.Constant_Value_dj4);
20771
20772 /* Outputs for Enabled SubSystem: '<S590>/CAN_TYPE1_RX_M1_C1' incorporates:
20773 * EnablePort: '<S594>/Enable'
20774 */
20775 if (L4_MABX_B.Operator_d0) {
20776 /* S-Function (rti_commonblock): '<S594>/S-Function1' */
20777 /* This comment workarounds a code generation problem */
20778
20779 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
20780 {
20781 UInt32 *CAN_Msg;
20782 static dsfloat time_old = 0.0;
20783
20784 /* Read status and timestamp info (previous message) */
20785 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].timestamp !=
20786 time_old) {
20787 /* ... save timestamp info for the calculation of the RX status
20788 during the consecutive sample hit*/
20789 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].
20790 timestamp;
20791
20792 /* ... set the processed flag to one */
20793 L4_MABX_B.SFunction1_o9_n = 1.0;
20794 L4_MABX_B.SFunction1_o10_c = (real_T)
20795 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].timestamp;
20796 L4_MABX_B.SFunction1_o11_e = (real_T)
20797 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].deltatime;
20798 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].data;
20799
20800 /* Decode CAN message */
20801 {
20802 {
20803 rtican_Signal_t CAN_Sgn;
20804
20805 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20806 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20807 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20808 L4_MABX_B.SFunction1_o1_b3 = ((real_T) CAN_Sgn.UnsignedSgn);
20809
20810 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20811 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20812 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20813 L4_MABX_B.SFunction1_o2_k3 = ((real_T) CAN_Sgn.UnsignedSgn);
20814
20815 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20816 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20817 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20818 L4_MABX_B.SFunction1_o3_ez = ((real_T) CAN_Sgn.UnsignedSgn);
20819
20820 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20821 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20822 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20823 L4_MABX_B.SFunction1_o4_l5 = ((real_T) CAN_Sgn.UnsignedSgn);
20824
20825 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20826 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20827 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20828 L4_MABX_B.SFunction1_o5_id = ((real_T) CAN_Sgn.UnsignedSgn);
20829
20830 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20831 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20832 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20833 L4_MABX_B.SFunction1_o6_fb0 = ((real_T) CAN_Sgn.UnsignedSgn);
20834
20835 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20836 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20837 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20838 L4_MABX_B.SFunction1_o7_p = ((real_T) CAN_Sgn.UnsignedSgn);
20839
20840 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20841 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20842 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20843 L4_MABX_B.SFunction1_o8_hk = ((real_T) CAN_Sgn.UnsignedSgn);
20844 }
20845 }
20846 } else {
20847 /* set RX status to 0 because no new message has arrived */
20848 L4_MABX_B.SFunction1_o9_n = 0.0;
20849 }
20850 }
20851 }
20852
20853 /* End of Outputs for SubSystem: '<S590>/CAN_TYPE1_RX_M1_C1' */
20854
20855 /* RelationalOperator: '<S598>/Operator' incorporates:
20856 * Constant: '<S440>/Constant'
20857 * Constant: '<S593>/Constant1'
20858 */
20859 L4_MABX_B.Operator_lm = (PROPB_REAX_CHANNEL_APV ==
20860 L4_MABX_P.Constant1_Value_dm);
20861
20862 /* Outputs for Enabled SubSystem: '<S591>/CAN_TYPE1_RX_M1_C2' incorporates:
20863 * EnablePort: '<S595>/Enable'
20864 */
20865 if (L4_MABX_B.Operator_lm) {
20866 /* S-Function (rti_commonblock): '<S595>/S-Function1' */
20867 /* This comment workarounds a code generation problem */
20868
20869 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
20870 {
20871 UInt32 *CAN_Msg;
20872 static dsfloat time_old = 0.0;
20873
20874 /* Read status and timestamp info (previous message) */
20875 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].timestamp !=
20876 time_old) {
20877 /* ... save timestamp info for the calculation of the RX status
20878 during the consecutive sample hit*/
20879 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].
20880 timestamp;
20881
20882 /* ... set the processed flag to one */
20883 L4_MABX_B.SFunction1_o9_j = 1.0;
20884 L4_MABX_B.SFunction1_o10_p = (real_T)
20885 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].timestamp;
20886 L4_MABX_B.SFunction1_o11_d = (real_T)
20887 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].deltatime;
20888 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].data;
20889
20890 /* Decode CAN message */
20891 {
20892 {
20893 rtican_Signal_t CAN_Sgn;
20894
20895 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20896 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20897 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20898 L4_MABX_B.SFunction1_o1_l = ((real_T) CAN_Sgn.UnsignedSgn);
20899
20900 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20901 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20902 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20903 L4_MABX_B.SFunction1_o2_hp = ((real_T) CAN_Sgn.UnsignedSgn);
20904
20905 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20906 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20907 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20908 L4_MABX_B.SFunction1_o3_lr = ((real_T) CAN_Sgn.UnsignedSgn);
20909
20910 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20911 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20912 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20913 L4_MABX_B.SFunction1_o4_ho = ((real_T) CAN_Sgn.UnsignedSgn);
20914
20915 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20916 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20917 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20918 L4_MABX_B.SFunction1_o5_d = ((real_T) CAN_Sgn.UnsignedSgn);
20919
20920 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20921 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20922 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20923 L4_MABX_B.SFunction1_o6_m = ((real_T) CAN_Sgn.UnsignedSgn);
20924
20925 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20926 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20927 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20928 L4_MABX_B.SFunction1_o7_a = ((real_T) CAN_Sgn.UnsignedSgn);
20929
20930 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20931 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20932 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20933 L4_MABX_B.SFunction1_o8_hy = ((real_T) CAN_Sgn.UnsignedSgn);
20934 }
20935 }
20936 } else {
20937 /* set RX status to 0 because no new message has arrived */
20938 L4_MABX_B.SFunction1_o9_j = 0.0;
20939 }
20940 }
20941 }
20942
20943 /* End of Outputs for SubSystem: '<S591>/CAN_TYPE1_RX_M1_C2' */
20944
20945 /* RelationalOperator: '<S602>/Operator' incorporates:
20946 * Constant: '<S440>/Constant'
20947 * Constant: '<S593>/Constant5'
20948 */
20949 L4_MABX_B.Operator_jg = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant5_Value_h);
20950
20951 /* Outputs for Enabled SubSystem: '<S592>/CAN_TYPE1_RX_M3_C2' incorporates:
20952 * EnablePort: '<S596>/Enable'
20953 */
20954 if (L4_MABX_B.Operator_jg) {
20955 /* S-Function (rti_commonblock): '<S596>/S-Function1' */
20956 /* This comment workarounds a code generation problem */
20957
20958 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:486536979 */
20959 {
20960 UInt32 *CAN_Msg;
20961 static dsfloat time_old = 0.0;
20962
20963 /* Read status and timestamp info (previous message) */
20964 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].timestamp !=
20965 time_old) {
20966 /* ... save timestamp info for the calculation of the RX status
20967 during the consecutive sample hit*/
20968 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].
20969 timestamp;
20970
20971 /* ... set the processed flag to one */
20972 L4_MABX_B.SFunction1_o9_f = 1.0;
20973 L4_MABX_B.SFunction1_o10_m = (real_T)
20974 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].timestamp;
20975 L4_MABX_B.SFunction1_o11_f = (real_T)
20976 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].deltatime;
20977 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].data;
20978
20979 /* Decode CAN message */
20980 {
20981 {
20982 rtican_Signal_t CAN_Sgn;
20983
20984 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20985 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20986 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20987 L4_MABX_B.SFunction1_o1_kc = ((real_T) CAN_Sgn.UnsignedSgn);
20988
20989 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20990 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20991 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20992 L4_MABX_B.SFunction1_o2_kr = ((real_T) CAN_Sgn.UnsignedSgn);
20993
20994 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20995 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20996 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20997 L4_MABX_B.SFunction1_o3_ef = ((real_T) CAN_Sgn.UnsignedSgn);
20998
20999 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
21000 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
21001 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21002 L4_MABX_B.SFunction1_o4_b = ((real_T) CAN_Sgn.UnsignedSgn);
21003
21004 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
21005 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
21006 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21007 L4_MABX_B.SFunction1_o5_ls = ((real_T) CAN_Sgn.UnsignedSgn);
21008
21009 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
21010 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
21011 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21012 L4_MABX_B.SFunction1_o6_g = ((real_T) CAN_Sgn.UnsignedSgn);
21013
21014 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
21015 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
21016 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21017 L4_MABX_B.SFunction1_o7_nv = ((real_T) CAN_Sgn.UnsignedSgn);
21018
21019 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
21020 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
21021 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21022 L4_MABX_B.SFunction1_o8_h = ((real_T) CAN_Sgn.UnsignedSgn);
21023 }
21024 }
21025 } else {
21026 /* set RX status to 0 because no new message has arrived */
21027 L4_MABX_B.SFunction1_o9_f = 0.0;
21028 }
21029 }
21030 }
21031
21032 /* End of Outputs for SubSystem: '<S592>/CAN_TYPE1_RX_M3_C2' */
21033
21034 /* DataTypeConversion: '<S592>/Data Type Conversion' */
21035 PositionFinalLimited = L4_MABX_B.SFunction1_o1_kc;
21036 if (PositionFinalLimited < 256.0) {
21037 if (PositionFinalLimited >= 0.0) {
21038 starting_index = (uint8_T)PositionFinalLimited;
21039 } else {
21040 starting_index = 0U;
21041 }
21042 } else {
21043 starting_index = MAX_uint8_T;
21044 }
21045
21046 L4_MABX_B.DataTypeConversion_i3 = starting_index;
21047
21048 /* End of DataTypeConversion: '<S592>/Data Type Conversion' */
21049
21050 /* DataTypeConversion: '<S592>/Data Type Conversion1' */
21051 PositionFinalLimited = L4_MABX_B.SFunction1_o2_kr;
21052 if (PositionFinalLimited < 256.0) {
21053 if (PositionFinalLimited >= 0.0) {
21054 starting_index = (uint8_T)PositionFinalLimited;
21055 } else {
21056 starting_index = 0U;
21057 }
21058 } else {
21059 starting_index = MAX_uint8_T;
21060 }
21061
21062 L4_MABX_B.DataTypeConversion1_ak = starting_index;
21063
21064 /* End of DataTypeConversion: '<S592>/Data Type Conversion1' */
21065
21066 /* DataTypeConversion: '<S592>/Data Type Conversion2' */
21067 PositionFinalLimited = L4_MABX_B.SFunction1_o3_ef;
21068 if (PositionFinalLimited < 256.0) {
21069 if (PositionFinalLimited >= 0.0) {
21070 starting_index = (uint8_T)PositionFinalLimited;
21071 } else {
21072 starting_index = 0U;
21073 }
21074 } else {
21075 starting_index = MAX_uint8_T;
21076 }
21077
21078 L4_MABX_B.DataTypeConversion2_lc = starting_index;
21079
21080 /* End of DataTypeConversion: '<S592>/Data Type Conversion2' */
21081
21082 /* DataTypeConversion: '<S592>/Data Type Conversion3' */
21083 PositionFinalLimited = L4_MABX_B.SFunction1_o4_b;
21084 if (PositionFinalLimited < 256.0) {
21085 if (PositionFinalLimited >= 0.0) {
21086 starting_index = (uint8_T)PositionFinalLimited;
21087 } else {
21088 starting_index = 0U;
21089 }
21090 } else {
21091 starting_index = MAX_uint8_T;
21092 }
21093
21094 L4_MABX_B.DataTypeConversion3_m1 = starting_index;
21095
21096 /* End of DataTypeConversion: '<S592>/Data Type Conversion3' */
21097
21098 /* DataTypeConversion: '<S592>/Data Type Conversion4' */
21099 PositionFinalLimited = L4_MABX_B.SFunction1_o5_ls;
21100 if (PositionFinalLimited < 256.0) {
21101 if (PositionFinalLimited >= 0.0) {
21102 starting_index = (uint8_T)PositionFinalLimited;
21103 } else {
21104 starting_index = 0U;
21105 }
21106 } else {
21107 starting_index = MAX_uint8_T;
21108 }
21109
21110 L4_MABX_B.DataTypeConversion4_a = starting_index;
21111
21112 /* End of DataTypeConversion: '<S592>/Data Type Conversion4' */
21113
21114 /* DataTypeConversion: '<S592>/Data Type Conversion5' */
21115 PositionFinalLimited = L4_MABX_B.SFunction1_o6_g;
21116 if (PositionFinalLimited < 256.0) {
21117 if (PositionFinalLimited >= 0.0) {
21118 starting_index = (uint8_T)PositionFinalLimited;
21119 } else {
21120 starting_index = 0U;
21121 }
21122 } else {
21123 starting_index = MAX_uint8_T;
21124 }
21125
21126 L4_MABX_B.DataTypeConversion5_i2 = starting_index;
21127
21128 /* End of DataTypeConversion: '<S592>/Data Type Conversion5' */
21129
21130 /* DataTypeConversion: '<S592>/Data Type Conversion6' */
21131 PositionFinalLimited = L4_MABX_B.SFunction1_o7_nv;
21132 if (PositionFinalLimited < 256.0) {
21133 if (PositionFinalLimited >= 0.0) {
21134 starting_index = (uint8_T)PositionFinalLimited;
21135 } else {
21136 starting_index = 0U;
21137 }
21138 } else {
21139 starting_index = MAX_uint8_T;
21140 }
21141
21142 L4_MABX_B.DataTypeConversion6_ax = starting_index;
21143
21144 /* End of DataTypeConversion: '<S592>/Data Type Conversion6' */
21145
21146 /* DataTypeConversion: '<S592>/Data Type Conversion7' */
21147 PositionFinalLimited = L4_MABX_B.SFunction1_o8_h;
21148 if (PositionFinalLimited < 256.0) {
21149 if (PositionFinalLimited >= 0.0) {
21150 starting_index = (uint8_T)PositionFinalLimited;
21151 } else {
21152 starting_index = 0U;
21153 }
21154 } else {
21155 starting_index = MAX_uint8_T;
21156 }
21157
21158 L4_MABX_B.DataTypeConversion7_b0 = starting_index;
21159
21160 /* End of DataTypeConversion: '<S592>/Data Type Conversion7' */
21161
21162 /* MultiPortSwitch: '<S440>/Multiport_Switch' incorporates:
21163 * Constant: '<S440>/Constant'
21164 */
21165 switch (PROPB_REAX_CHANNEL_APV) {
21166 case ENUM_CAN_RX_T_RX_CAN_1:
21167 /* DataTypeConversion: '<S590>/Data Type Conversion' */
21168 PositionFinalLimited = L4_MABX_B.SFunction1_o1_b3;
21169 if (PositionFinalLimited < 256.0) {
21170 if (PositionFinalLimited >= 0.0) {
21171 starting_index = (uint8_T)PositionFinalLimited;
21172 } else {
21173 starting_index = 0U;
21174 }
21175 } else {
21176 starting_index = MAX_uint8_T;
21177 }
21178
21179 L4_MABX_B.DataTypeConversion_k1 = starting_index;
21180
21181 /* End of DataTypeConversion: '<S590>/Data Type Conversion' */
21182
21183 /* DataTypeConversion: '<S590>/Data Type Conversion1' */
21184 PositionFinalLimited = L4_MABX_B.SFunction1_o2_k3;
21185 if (PositionFinalLimited < 256.0) {
21186 if (PositionFinalLimited >= 0.0) {
21187 starting_index = (uint8_T)PositionFinalLimited;
21188 } else {
21189 starting_index = 0U;
21190 }
21191 } else {
21192 starting_index = MAX_uint8_T;
21193 }
21194
21195 L4_MABX_B.DataTypeConversion1_pi = starting_index;
21196
21197 /* End of DataTypeConversion: '<S590>/Data Type Conversion1' */
21198
21199 /* DataTypeConversion: '<S590>/Data Type Conversion2' */
21200 PositionFinalLimited = L4_MABX_B.SFunction1_o3_ez;
21201 if (PositionFinalLimited < 256.0) {
21202 if (PositionFinalLimited >= 0.0) {
21203 starting_index = (uint8_T)PositionFinalLimited;
21204 } else {
21205 starting_index = 0U;
21206 }
21207 } else {
21208 starting_index = MAX_uint8_T;
21209 }
21210
21211 L4_MABX_B.DataTypeConversion2_ot = starting_index;
21212
21213 /* End of DataTypeConversion: '<S590>/Data Type Conversion2' */
21214
21215 /* DataTypeConversion: '<S590>/Data Type Conversion3' */
21216 PositionFinalLimited = L4_MABX_B.SFunction1_o4_l5;
21217 if (PositionFinalLimited < 256.0) {
21218 if (PositionFinalLimited >= 0.0) {
21219 starting_index = (uint8_T)PositionFinalLimited;
21220 } else {
21221 starting_index = 0U;
21222 }
21223 } else {
21224 starting_index = MAX_uint8_T;
21225 }
21226
21227 L4_MABX_B.DataTypeConversion3_hc = starting_index;
21228
21229 /* End of DataTypeConversion: '<S590>/Data Type Conversion3' */
21230
21231 /* DataTypeConversion: '<S590>/Data Type Conversion4' */
21232 PositionFinalLimited = L4_MABX_B.SFunction1_o5_id;
21233 if (PositionFinalLimited < 256.0) {
21234 if (PositionFinalLimited >= 0.0) {
21235 starting_index = (uint8_T)PositionFinalLimited;
21236 } else {
21237 starting_index = 0U;
21238 }
21239 } else {
21240 starting_index = MAX_uint8_T;
21241 }
21242
21243 L4_MABX_B.DataTypeConversion4_c = starting_index;
21244
21245 /* End of DataTypeConversion: '<S590>/Data Type Conversion4' */
21246
21247 /* DataTypeConversion: '<S590>/Data Type Conversion5' */
21248 PositionFinalLimited = L4_MABX_B.SFunction1_o6_fb0;
21249 if (PositionFinalLimited < 256.0) {
21250 if (PositionFinalLimited >= 0.0) {
21251 starting_index = (uint8_T)PositionFinalLimited;
21252 } else {
21253 starting_index = 0U;
21254 }
21255 } else {
21256 starting_index = MAX_uint8_T;
21257 }
21258
21259 L4_MABX_B.DataTypeConversion5_n = starting_index;
21260
21261 /* End of DataTypeConversion: '<S590>/Data Type Conversion5' */
21262
21263 /* DataTypeConversion: '<S590>/Data Type Conversion6' */
21264 PositionFinalLimited = L4_MABX_B.SFunction1_o7_p;
21265 if (PositionFinalLimited < 256.0) {
21266 if (PositionFinalLimited >= 0.0) {
21267 starting_index = (uint8_T)PositionFinalLimited;
21268 } else {
21269 starting_index = 0U;
21270 }
21271 } else {
21272 starting_index = MAX_uint8_T;
21273 }
21274
21275 L4_MABX_B.DataTypeConversion6_ij = starting_index;
21276
21277 /* End of DataTypeConversion: '<S590>/Data Type Conversion6' */
21278
21279 /* DataTypeConversion: '<S590>/Data Type Conversion7' */
21280 PositionFinalLimited = L4_MABX_B.SFunction1_o8_hk;
21281 if (PositionFinalLimited < 256.0) {
21282 if (PositionFinalLimited >= 0.0) {
21283 starting_index = (uint8_T)PositionFinalLimited;
21284 } else {
21285 starting_index = 0U;
21286 }
21287 } else {
21288 starting_index = MAX_uint8_T;
21289 }
21290
21291 L4_MABX_B.DataTypeConversion7_fv = starting_index;
21292
21293 /* End of DataTypeConversion: '<S590>/Data Type Conversion7' */
21294 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_k1;
21295 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_pi;
21296 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_ot;
21297 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_hc;
21298 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_c;
21299 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_n;
21300 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_ij;
21301 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_fv;
21302 break;
21303
21304 case ENUM_CAN_RX_T_RX_CAN_2:
21305 /* DataTypeConversion: '<S591>/Data Type Conversion' */
21306 PositionFinalLimited = L4_MABX_B.SFunction1_o1_l;
21307 if (PositionFinalLimited < 256.0) {
21308 if (PositionFinalLimited >= 0.0) {
21309 starting_index = (uint8_T)PositionFinalLimited;
21310 } else {
21311 starting_index = 0U;
21312 }
21313 } else {
21314 starting_index = MAX_uint8_T;
21315 }
21316
21317 L4_MABX_B.DataTypeConversion_j1 = starting_index;
21318
21319 /* End of DataTypeConversion: '<S591>/Data Type Conversion' */
21320
21321 /* DataTypeConversion: '<S591>/Data Type Conversion1' */
21322 PositionFinalLimited = L4_MABX_B.SFunction1_o2_hp;
21323 if (PositionFinalLimited < 256.0) {
21324 if (PositionFinalLimited >= 0.0) {
21325 starting_index = (uint8_T)PositionFinalLimited;
21326 } else {
21327 starting_index = 0U;
21328 }
21329 } else {
21330 starting_index = MAX_uint8_T;
21331 }
21332
21333 L4_MABX_B.DataTypeConversion1_h1 = starting_index;
21334
21335 /* End of DataTypeConversion: '<S591>/Data Type Conversion1' */
21336
21337 /* DataTypeConversion: '<S591>/Data Type Conversion2' */
21338 PositionFinalLimited = L4_MABX_B.SFunction1_o3_lr;
21339 if (PositionFinalLimited < 256.0) {
21340 if (PositionFinalLimited >= 0.0) {
21341 starting_index = (uint8_T)PositionFinalLimited;
21342 } else {
21343 starting_index = 0U;
21344 }
21345 } else {
21346 starting_index = MAX_uint8_T;
21347 }
21348
21349 L4_MABX_B.DataTypeConversion2_ph = starting_index;
21350
21351 /* End of DataTypeConversion: '<S591>/Data Type Conversion2' */
21352
21353 /* DataTypeConversion: '<S591>/Data Type Conversion3' */
21354 PositionFinalLimited = L4_MABX_B.SFunction1_o4_ho;
21355 if (PositionFinalLimited < 256.0) {
21356 if (PositionFinalLimited >= 0.0) {
21357 starting_index = (uint8_T)PositionFinalLimited;
21358 } else {
21359 starting_index = 0U;
21360 }
21361 } else {
21362 starting_index = MAX_uint8_T;
21363 }
21364
21365 L4_MABX_B.DataTypeConversion3_jh = starting_index;
21366
21367 /* End of DataTypeConversion: '<S591>/Data Type Conversion3' */
21368
21369 /* DataTypeConversion: '<S591>/Data Type Conversion4' */
21370 PositionFinalLimited = L4_MABX_B.SFunction1_o5_d;
21371 if (PositionFinalLimited < 256.0) {
21372 if (PositionFinalLimited >= 0.0) {
21373 starting_index = (uint8_T)PositionFinalLimited;
21374 } else {
21375 starting_index = 0U;
21376 }
21377 } else {
21378 starting_index = MAX_uint8_T;
21379 }
21380
21381 L4_MABX_B.DataTypeConversion4_cy = starting_index;
21382
21383 /* End of DataTypeConversion: '<S591>/Data Type Conversion4' */
21384
21385 /* DataTypeConversion: '<S591>/Data Type Conversion5' */
21386 PositionFinalLimited = L4_MABX_B.SFunction1_o6_m;
21387 if (PositionFinalLimited < 256.0) {
21388 if (PositionFinalLimited >= 0.0) {
21389 starting_index = (uint8_T)PositionFinalLimited;
21390 } else {
21391 starting_index = 0U;
21392 }
21393 } else {
21394 starting_index = MAX_uint8_T;
21395 }
21396
21397 L4_MABX_B.DataTypeConversion5_h = starting_index;
21398
21399 /* End of DataTypeConversion: '<S591>/Data Type Conversion5' */
21400
21401 /* DataTypeConversion: '<S591>/Data Type Conversion6' */
21402 PositionFinalLimited = L4_MABX_B.SFunction1_o7_a;
21403 if (PositionFinalLimited < 256.0) {
21404 if (PositionFinalLimited >= 0.0) {
21405 starting_index = (uint8_T)PositionFinalLimited;
21406 } else {
21407 starting_index = 0U;
21408 }
21409 } else {
21410 starting_index = MAX_uint8_T;
21411 }
21412
21413 L4_MABX_B.DataTypeConversion6_n = starting_index;
21414
21415 /* End of DataTypeConversion: '<S591>/Data Type Conversion6' */
21416
21417 /* DataTypeConversion: '<S591>/Data Type Conversion7' */
21418 PositionFinalLimited = L4_MABX_B.SFunction1_o8_hy;
21419 if (PositionFinalLimited < 256.0) {
21420 if (PositionFinalLimited >= 0.0) {
21421 starting_index = (uint8_T)PositionFinalLimited;
21422 } else {
21423 starting_index = 0U;
21424 }
21425 } else {
21426 starting_index = MAX_uint8_T;
21427 }
21428
21429 L4_MABX_B.DataTypeConversion7_dz = starting_index;
21430
21431 /* End of DataTypeConversion: '<S591>/Data Type Conversion7' */
21432 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_j1;
21433 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_h1;
21434 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_ph;
21435 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_jh;
21436 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_cy;
21437 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_h;
21438 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_n;
21439 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_dz;
21440 break;
21441
21442 case ENUM_CAN_RX_T_RX_CAN_3:
21443 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_i3;
21444 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_ak;
21445 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_lc;
21446 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_m1;
21447 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_a;
21448 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_i2;
21449 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_ax;
21450 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_b0;
21451 break;
21452
21453 case ENUM_CAN_RX_T_RX_CAN_4:
21454 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_i3;
21455 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_ak;
21456 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_lc;
21457 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_m1;
21458 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_a;
21459 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_i2;
21460 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_ax;
21461 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_b0;
21462 break;
21463
21464 case ENUM_CAN_RX_T_RX_CAN_5:
21465 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_i3;
21466 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_ak;
21467 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_lc;
21468 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_m1;
21469 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_a;
21470 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_i2;
21471 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_ax;
21472 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_b0;
21473 break;
21474
21475 case ENUM_CAN_RX_T_RX_CAN_6:
21476 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_i3;
21477 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_ak;
21478 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_lc;
21479 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_m1;
21480 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_a;
21481 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_i2;
21482 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_ax;
21483 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_b0;
21484 break;
21485
21486 default:
21487 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_i3;
21488 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_ak;
21489 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_lc;
21490 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_m1;
21491 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_a;
21492 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_i2;
21493 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_ax;
21494 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_b0;
21495 break;
21496 }
21497
21498 /* S-Function (sfix_bitop): '<S679>/Operator' */
21499 L4_MABX_B.Operator_gng = (uint8_T)(L4_MABX_B.RawData_e[0] &
21500 L4_MABX_P.Operator_BitMask_bt);
21501
21502 /* DataTypeConversion: '<S679>/DataType' */
21503 L4_MABX_B.DataType_fb = L4_MABX_B.Operator_gng;
21504
21505 /* ArithShift: '<S672>/Shift_Arithmetic ' */
21506 L4_MABX_B.Shift_Arithmetic_j = (uint8_T)((uint32_T)L4_MABX_B.DataType_fb >> 1);
21507
21508 /* DataTypeConversion: '<S672>/Data Type Conversion' */
21509 L4_MABX_B.PropB_REAX_4_PositionIndexValid = (L4_MABX_B.Shift_Arithmetic_j != 0);
21510
21511 /* DataTypeConversion: '<S415>/Data Type Conversion' */
21512 L4_MABX_B.DataTypeConversion_di = L4_MABX_B.PropB_REAX_4_PositionIndexValid;
21513
21514 /* S-Function (sfix_bitop): '<S678>/Operator' */
21515 L4_MABX_B.Operator_co = (uint8_T)(L4_MABX_B.RawData_e[0] &
21516 L4_MABX_P.Operator_BitMask_fg);
21517
21518 /* DataTypeConversion: '<S678>/DataType' */
21519 L4_MABX_B.DataType_nf = (L4_MABX_B.Operator_co != 0);
21520
21521 /* DataTypeConversion: '<S415>/Data Type Conversion1' */
21522 L4_MABX_B.DataTypeConversion1_h5 = L4_MABX_B.DataType_nf;
21523
21524 /* S-Function (sfix_bitop): '<S680>/Operator' */
21525 L4_MABX_B.Operator_df = (uint8_T)(L4_MABX_B.RawData_e[0] &
21526 L4_MABX_P.Operator_BitMask_bz);
21527
21528 /* DataTypeConversion: '<S680>/DataType' */
21529 L4_MABX_B.DataType_bq = L4_MABX_B.Operator_df;
21530
21531 /* ArithShift: '<S672>/Shift_Arithmetic 1' */
21532 L4_MABX_B.Shift_Arithmetic1_m = (uint8_T)((uint32_T)L4_MABX_B.DataType_bq >> 2);
21533
21534 /* DataTypeConversion: '<S672>/Data Type Conversion1' */
21535 L4_MABX_B.PropB_REAX_4_DriverControlledEf = (L4_MABX_B.Shift_Arithmetic1_m !=
21536 0);
21537
21538 /* DataTypeConversion: '<S415>/Data Type Conversion2' */
21539 L4_MABX_B.DataTypeConversion2_lh = L4_MABX_B.PropB_REAX_4_DriverControlledEf;
21540
21541 /* SignalConversion: '<S673>/SignalConversion' */
21542 L4_MABX_B.PropB_REAX_4_ControlOperatingMo = L4_MABX_B.RawData_e[1];
21543
21544 /* DataTypeConversion: '<S415>/Data Type Conversion3' */
21545 L4_MABX_B.DataTypeConversion3_hp = L4_MABX_B.PropB_REAX_4_ControlOperatingMo;
21546
21547 /* SignalConversion: '<S674>/SignalConversion' */
21548 L4_MABX_B.PropB_REAX_4_SystemMode = L4_MABX_B.RawData_e[2];
21549
21550 /* DataTypeConversion: '<S415>/Data Type Conversion4' */
21551 L4_MABX_B.DataTypeConversion4_ak = L4_MABX_B.PropB_REAX_4_SystemMode;
21552
21553 /* DataTypeConversion: '<S675>/Data Type Conversion4' */
21554 L4_MABX_B.DataTypeConversion4_j = (int8_T)L4_MABX_B.RawData_e[4];
21555
21556 /* DataTypeConversion: '<S675>/Data Type Conversion5' */
21557 L4_MABX_B.PropB_REAX_4_PercHandwheelTorqu = L4_MABX_B.DataTypeConversion4_j;
21558
21559 /* DataTypeConversion: '<S415>/Data Type Conversion5' */
21560 L4_MABX_B.DataTypeConversion5_g = L4_MABX_B.PropB_REAX_4_PercHandwheelTorqu;
21561
21562 /* DataTypeConversion: '<S676>/Data Type Conversion6' */
21563 L4_MABX_B.DataTypeConversion6_j = L4_MABX_B.RawData_e[5];
21564
21565 /* DataTypeConversion: '<S676>/Data Type Conversion7' */
21566 L4_MABX_B.DataTypeConversion7_j = L4_MABX_B.RawData_e[6];
21567
21568 /* ArithShift: '<S676>/Shift_Arithmetic 2' */
21569 L4_MABX_B.Shift_Arithmetic2_ef = (uint16_T)(L4_MABX_B.DataTypeConversion7_j <<
21570 8);
21571
21572 /* S-Function (sfix_bitop): '<S681>/Operator' */
21573 L4_MABX_B.Operator_gb = (uint16_T)(L4_MABX_B.DataTypeConversion6_j |
21574 L4_MABX_B.Shift_Arithmetic2_ef);
21575
21576 /* DataTypeConversion: '<S681>/DataType' */
21577 L4_MABX_B.DataType_gb = L4_MABX_B.Operator_gb;
21578
21579 /* DataTypeConversion: '<S676>/Data Type Conversion8' */
21580 L4_MABX_B.DataTypeConversion8_m = (int16_T)L4_MABX_B.DataType_gb;
21581
21582 /* DataTypeConversion: '<S676>/Data Type Conversion9' */
21583 L4_MABX_B.PropB_REAX_4_AbsSteeringAngle = L4_MABX_B.DataTypeConversion8_m;
21584
21585 /* DataTypeConversion: '<S415>/Data Type Conversion6' */
21586 L4_MABX_B.DataTypeConversion6_a = L4_MABX_B.PropB_REAX_4_AbsSteeringAngle;
21587
21588 /* DataTypeConversion: '<S677>/Data Type Conversion10' */
21589 L4_MABX_B.DataTypeConversion10_j = (int8_T)L4_MABX_B.RawData_e[7];
21590
21591 /* DataTypeConversion: '<S677>/Data Type Conversion11' */
21592 L4_MABX_B.PropB_REAX_4_PercMotorTorque = L4_MABX_B.DataTypeConversion10_j;
21593
21594 /* DataTypeConversion: '<S415>/Data Type Conversion7' */
21595 L4_MABX_B.DataTypeConversion7_d = L4_MABX_B.PropB_REAX_4_PercMotorTorque;
21596
21597 /* DataTypeConversion: '<S592>/Data Type Conversion8' */
21598 L4_MABX_B.RX_status_m = (L4_MABX_B.SFunction1_o9_f != 0.0);
21599
21600 /* MultiPortSwitch: '<S440>/Multiport_Switch' incorporates:
21601 * Constant: '<S440>/Constant'
21602 */
21603 switch (PROPB_REAX_CHANNEL_APV) {
21604 case ENUM_CAN_RX_T_RX_CAN_1:
21605 /* DataTypeConversion: '<S590>/Data Type Conversion8' */
21606 L4_MABX_B.RX_status_j = (L4_MABX_B.SFunction1_o9_n != 0.0);
21607 L4_MABX_B.RX_status_nk = L4_MABX_B.RX_status_j;
21608 break;
21609
21610 case ENUM_CAN_RX_T_RX_CAN_2:
21611 /* DataTypeConversion: '<S591>/Data Type Conversion8' */
21612 L4_MABX_B.RX_status_ka = (L4_MABX_B.SFunction1_o9_j != 0.0);
21613 L4_MABX_B.RX_status_nk = L4_MABX_B.RX_status_ka;
21614 break;
21615
21616 case ENUM_CAN_RX_T_RX_CAN_3:
21617 L4_MABX_B.RX_status_nk = L4_MABX_B.RX_status_m;
21618 break;
21619
21620 case ENUM_CAN_RX_T_RX_CAN_4:
21621 L4_MABX_B.RX_status_nk = L4_MABX_B.RX_status_m;
21622 break;
21623
21624 case ENUM_CAN_RX_T_RX_CAN_5:
21625 L4_MABX_B.RX_status_nk = L4_MABX_B.RX_status_m;
21626 break;
21627
21628 case ENUM_CAN_RX_T_RX_CAN_6:
21629 L4_MABX_B.RX_status_nk = L4_MABX_B.RX_status_m;
21630 break;
21631
21632 default:
21633 L4_MABX_B.RX_status_nk = L4_MABX_B.RX_status_m;
21634 break;
21635 }
21636
21637 /* DataTypeConversion: '<S592>/Data Type Conversion9' */
21638 L4_MABX_B.RX_time_bw = L4_MABX_B.SFunction1_o10_m;
21639
21640 /* MultiPortSwitch: '<S440>/Multiport_Switch' incorporates:
21641 * Constant: '<S440>/Constant'
21642 */
21643 switch (PROPB_REAX_CHANNEL_APV) {
21644 case ENUM_CAN_RX_T_RX_CAN_1:
21645 /* DataTypeConversion: '<S590>/Data Type Conversion9' */
21646 L4_MABX_B.RX_time_j4 = L4_MABX_B.SFunction1_o10_c;
21647 L4_MABX_B.RX_time_of = L4_MABX_B.RX_time_j4;
21648 break;
21649
21650 case ENUM_CAN_RX_T_RX_CAN_2:
21651 /* DataTypeConversion: '<S591>/Data Type Conversion9' */
21652 L4_MABX_B.RX_time_dj = L4_MABX_B.SFunction1_o10_p;
21653 L4_MABX_B.RX_time_of = L4_MABX_B.RX_time_dj;
21654 break;
21655
21656 case ENUM_CAN_RX_T_RX_CAN_3:
21657 L4_MABX_B.RX_time_of = L4_MABX_B.RX_time_bw;
21658 break;
21659
21660 case ENUM_CAN_RX_T_RX_CAN_4:
21661 L4_MABX_B.RX_time_of = L4_MABX_B.RX_time_bw;
21662 break;
21663
21664 case ENUM_CAN_RX_T_RX_CAN_5:
21665 L4_MABX_B.RX_time_of = L4_MABX_B.RX_time_bw;
21666 break;
21667
21668 case ENUM_CAN_RX_T_RX_CAN_6:
21669 L4_MABX_B.RX_time_of = L4_MABX_B.RX_time_bw;
21670 break;
21671
21672 default:
21673 L4_MABX_B.RX_time_of = L4_MABX_B.RX_time_bw;
21674 break;
21675 }
21676
21677 /* DataTypeConversion: '<S592>/Data Type Conversion10' */
21678 L4_MABX_B.RX_delta_time_ku = L4_MABX_B.SFunction1_o11_f;
21679
21680 /* MultiPortSwitch: '<S440>/Multiport_Switch' incorporates:
21681 * Constant: '<S440>/Constant'
21682 */
21683 switch (PROPB_REAX_CHANNEL_APV) {
21684 case ENUM_CAN_RX_T_RX_CAN_1:
21685 /* DataTypeConversion: '<S590>/Data Type Conversion10' */
21686 L4_MABX_B.RX_delta_time_an = L4_MABX_B.SFunction1_o11_e;
21687 L4_MABX_B.RX_delta_time_it = L4_MABX_B.RX_delta_time_an;
21688 break;
21689
21690 case ENUM_CAN_RX_T_RX_CAN_2:
21691 /* DataTypeConversion: '<S591>/Data Type Conversion10' */
21692 L4_MABX_B.RX_delta_time_nq = L4_MABX_B.SFunction1_o11_d;
21693 L4_MABX_B.RX_delta_time_it = L4_MABX_B.RX_delta_time_nq;
21694 break;
21695
21696 case ENUM_CAN_RX_T_RX_CAN_3:
21697 L4_MABX_B.RX_delta_time_it = L4_MABX_B.RX_delta_time_ku;
21698 break;
21699
21700 case ENUM_CAN_RX_T_RX_CAN_4:
21701 L4_MABX_B.RX_delta_time_it = L4_MABX_B.RX_delta_time_ku;
21702 break;
21703
21704 case ENUM_CAN_RX_T_RX_CAN_5:
21705 L4_MABX_B.RX_delta_time_it = L4_MABX_B.RX_delta_time_ku;
21706 break;
21707
21708 case ENUM_CAN_RX_T_RX_CAN_6:
21709 L4_MABX_B.RX_delta_time_it = L4_MABX_B.RX_delta_time_ku;
21710 break;
21711
21712 default:
21713 L4_MABX_B.RX_delta_time_it = L4_MABX_B.RX_delta_time_ku;
21714 break;
21715 }
21716
21717 /* RelationalOperator: '<S599>/Operator' incorporates:
21718 * Constant: '<S440>/Constant'
21719 * Constant: '<S593>/Constant2'
21720 */
21721 L4_MABX_B.Operator_o5 = (PROPB_REAX_CHANNEL_APV ==
21722 L4_MABX_P.Constant2_Value_n5);
21723
21724 /* RelationalOperator: '<S600>/Operator' incorporates:
21725 * Constant: '<S440>/Constant'
21726 * Constant: '<S593>/Constant3'
21727 */
21728 L4_MABX_B.Operator_cc = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant3_Value_f);
21729
21730 /* RelationalOperator: '<S601>/Operator' incorporates:
21731 * Constant: '<S440>/Constant'
21732 * Constant: '<S593>/Constant4'
21733 */
21734 L4_MABX_B.Operator_pn = (PROPB_REAX_CHANNEL_APV ==
21735 L4_MABX_P.Constant4_Value_mc);
21736
21737 /* S-Function (rti_commonblock): '<S455>/S-Function1' */
21738 /* This comment workarounds a code generation problem */
21739
21740 /* S-Function (rti_commonblock): '<S456>/S-Function1' */
21741 /* This comment workarounds a code generation problem */
21742
21743 /* S-Function (rti_commonblock): '<S457>/S-Function1' */
21744 /* This comment workarounds a code generation problem */
21745
21746 /* S-Function (rti_commonblock): '<S458>/S-Function1' */
21747 /* This comment workarounds a code generation problem */
21748
21749 /* S-Function (rti_commonblock): '<S459>/S-Function1' */
21750 /* This comment workarounds a code generation problem */
21751
21752 /* S-Function (rti_commonblock): '<S460>/S-Function1' */
21753 /* This comment workarounds a code generation problem */
21754
21755 /* S-Function (rti_commonblock): '<S730>/S-Function1' */
21756 /* This comment workarounds a code generation problem */
21757
21758 /* S-Function (rti_commonblock): '<S732>/S-Function1' */
21759 /* This comment workarounds a code generation problem */
21760
21761 /* DataTypeConversion: '<S411>/LogPbActive' */
21762 L4_MABX_B.LogPbActive = L4_MABX_B.SFunction1_e;
21763
21764 /* Logic: '<S411>/Logical Operator2' */
21765 L4_MABX_B.LogicalOperator2_n = !L4_MABX_B.LogPbActive;
21766
21767 /* RelationalOperator: '<S744>/Compare' incorporates:
21768 * Constant: '<S744>/Constant'
21769 */
21770 L4_MABX_B.Compare_pe = ((int32_T)L4_MABX_B.LogicalOperator2_n > (int32_T)
21771 L4_MABX_P.Constant_Value_gn);
21772
21773 /* UnitDelay: '<S740>/Delay Input1' */
21774 L4_MABX_B.Uk1_j = L4_MABX_DW.DelayInput1_DSTATE_k;
21775
21776 /* RelationalOperator: '<S740>/FixPt Relational Operator' */
21777 L4_MABX_B.FixPtRelationalOperator_i = ((int32_T)L4_MABX_B.Compare_pe >
21778 (int32_T)L4_MABX_B.Uk1_j);
21779
21780 /* UnitDelay: '<S741>/Unit Delay1' */
21781 L4_MABX_B.UnitDelay1 = L4_MABX_DW.UnitDelay1_DSTATE;
21782
21783 /* UnitDelay: '<S736>/Unit Delay' */
21784 L4_MABX_B.UnitDelay_js = L4_MABX_DW.UnitDelay_DSTATE_jd;
21785
21786 /* Sum: '<S736>/Subtract' incorporates:
21787 * Constant: '<S736>/Constant'
21788 */
21789 L4_MABX_B.Subtract_ex = (real_T)L4_MABX_B.UnitDelay_js -
21790 L4_MABX_P.Constant_Value_hw;
21791
21792 /* RelationalOperator: '<S743>/Compare' incorporates:
21793 * Constant: '<S743>/Constant'
21794 */
21795 L4_MABX_B.Compare_oc = (L4_MABX_B.Subtract_ex < L4_MABX_P.Constant_Value_ed);
21796
21797 /* UnitDelay: '<S739>/Delay Input1' */
21798 L4_MABX_B.Uk1_fx = L4_MABX_DW.DelayInput1_DSTATE_nn;
21799
21800 /* RelationalOperator: '<S739>/FixPt Relational Operator' */
21801 L4_MABX_B.FixPtRelationalOperator_n = ((int32_T)L4_MABX_B.Compare_oc >
21802 (int32_T)L4_MABX_B.Uk1_fx);
21803
21804 /* UnitDelay: '<S741>/Unit Delay' */
21805 L4_MABX_B.UnitDelay_ov = L4_MABX_DW.UnitDelay_DSTATE_pw;
21806
21807 /* Logic: '<S741>/OR1' */
21808 L4_MABX_B.OR1 = (L4_MABX_B.FixPtRelationalOperator_n || L4_MABX_B.UnitDelay_ov);
21809
21810 /* Switch: '<S741>/Switch' incorporates:
21811 * Constant: '<S741>/Constant1'
21812 */
21813 if (L4_MABX_B.OR1) {
21814 /* Sum: '<S741>/Sum' incorporates:
21815 * Constant: '<S741>/Constant'
21816 */
21817 L4_MABX_B.Sum_p = L4_MABX_B.UnitDelay1 + L4_MABX_P.Constant_Value_af;
21818 L4_MABX_B.Switch = L4_MABX_B.Sum_p;
21819 } else {
21820 L4_MABX_B.Switch = L4_MABX_P.Constant1_Value_k;
21821 }
21822
21823 /* End of Switch: '<S741>/Switch' */
21824
21825 /* RelationalOperator: '<S745>/Compare' incorporates:
21826 * Constant: '<S745>/Constant'
21827 */
21828 L4_MABX_B.Compare_oo = (L4_MABX_B.Switch > L4_MABX_P.Constant_Value_ic);
21829
21830 /* Gain: '<S741>/Gain' incorporates:
21831 * Constant: '<S411>/Constant1'
21832 */
21833 L4_MABX_B.Gain_b = L4_MABX_P.Gain_Gain_d * L4_MABX_P.Constant1_Value_b3;
21834
21835 /* RelationalOperator: '<S741>/LessThanOrEqual' */
21836 L4_MABX_B.LessThanOrEqual = (L4_MABX_B.Switch <= L4_MABX_B.Gain_b);
21837
21838 /* Logic: '<S741>/AND' */
21839 L4_MABX_B.AND_h = (L4_MABX_B.Compare_oo && L4_MABX_B.LessThanOrEqual);
21840
21841 /* Logic: '<S736>/NOT' */
21842 L4_MABX_B.NOT = !L4_MABX_B.AND_h;
21843
21844 /* Logic: '<S736>/AND' */
21845 L4_MABX_B.AND_hz = (L4_MABX_B.FixPtRelationalOperator_i && L4_MABX_B.NOT);
21846
21847 /* UnitDelay: '<S742>/Unit Delay1' */
21848 L4_MABX_B.UnitDelay1_c = L4_MABX_DW.UnitDelay1_DSTATE_p;
21849
21850 /* UnitDelay: '<S742>/Unit Delay' */
21851 L4_MABX_B.UnitDelay_lz = L4_MABX_DW.UnitDelay_DSTATE_i;
21852
21853 /* Logic: '<S742>/OR1' */
21854 L4_MABX_B.OR1_f = (L4_MABX_B.AND_hz || L4_MABX_B.UnitDelay_lz);
21855
21856 /* Switch: '<S742>/Switch' incorporates:
21857 * Constant: '<S742>/Constant1'
21858 */
21859 if (L4_MABX_B.OR1_f) {
21860 /* Sum: '<S742>/Sum' incorporates:
21861 * Constant: '<S742>/Constant'
21862 */
21863 L4_MABX_B.Sum = L4_MABX_B.UnitDelay1_c + L4_MABX_P.Constant_Value_p0;
21864 L4_MABX_B.Switch_o = L4_MABX_B.Sum;
21865 } else {
21866 L4_MABX_B.Switch_o = L4_MABX_P.Constant1_Value_fx;
21867 }
21868
21869 /* End of Switch: '<S742>/Switch' */
21870
21871 /* RelationalOperator: '<S746>/Compare' incorporates:
21872 * Constant: '<S746>/Constant'
21873 */
21874 L4_MABX_B.Compare_os = (L4_MABX_B.Switch_o > L4_MABX_P.Constant_Value_jm);
21875
21876 /* Gain: '<S742>/Gain' incorporates:
21877 * Constant: '<S411>/Constant'
21878 */
21879 L4_MABX_B.Gain_n = L4_MABX_P.Gain_Gain_f4 * L4_MABX_P.Constant_Value_jqu;
21880
21881 /* RelationalOperator: '<S742>/LessThanOrEqual' */
21882 L4_MABX_B.LessThanOrEqual_k = (L4_MABX_B.Switch_o <= L4_MABX_B.Gain_n);
21883
21884 /* Logic: '<S742>/AND' */
21885 L4_MABX_B.AND_c = (L4_MABX_B.Compare_os && L4_MABX_B.LessThanOrEqual_k);
21886
21887 /* Logic: '<S736>/AND2' */
21888 LogEventPB = (L4_MABX_B.AND_c && L4_MABX_B.NOT);
21889
21890 /* DataTypeConversion: '<S411>/StartPBActive' */
21891 L4_MABX_B.StartPBActive = L4_MABX_B.SFunction1_d;
21892
21893 /* Logic: '<S411>/Logical Operator' */
21894 EngagePB = !L4_MABX_B.StartPBActive;
21895
21896 /* Assertion: '<S768>/Assertion' */
21897 utAssert(L4_MABX_B.conjunction_a);
21898
21899 /* Assertion: '<S776>/Assertion' */
21900 utAssert(L4_MABX_B.conjunction);
21901
21902 /* Assertion: '<S784>/Assertion' */
21903 utAssert(L4_MABX_B.conjunction_f);
21904
21905 /* Assertion: '<S792>/Assertion' */
21906 utAssert(L4_MABX_B.conjunction_b);
21907
21908 /* Assertion: '<S800>/Assertion' */
21909 utAssert(L4_MABX_B.conjunction_m);
21910
21911 /* RelationalOperator: '<S767>/Relational Operator9' incorporates:
21912 * Constant: '<S748>/PWMSynchFaultLimMin'
21913 */
21914 L4_MABX_B.F_Fault_Soft_c = (L4_MABX_B.If_Then_Else_k.Switch !=
21915 L4_MABX_P.PWMSynchFaultLimMin_Value);
21916
21917 /* Gain: '<S411>/ShifterControlFreq' */
21918 L4_MABX_B.ShiftControlFreq = L4_MABX_P.ShifterControlFreq_Gain *
21919 L4_MABX_B.SFunction1_o1_b;
21920
21921 /* S-Function (rti_commonblock): '<S725>/S-Function1' */
21922 /* This comment workarounds a code generation problem */
21923 {
21924 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
21925 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
21926 ADC_TP4_CH2,
21927 (dsfloat *)&L4_MABX_B.SFunction1_h);
21928 }
21929
21930 /* Gain: '<S411>/ShifterControlDC2' */
21931 L4_MABX_B.ShifterControlDC2 = L4_MABX_P.ShifterControlDC2_Gain *
21932 L4_MABX_B.SFunction1_h;
21933
21934 /* S-Function (rti_commonblock): '<S726>/S-Function1' */
21935 /* This comment workarounds a code generation problem */
21936 {
21937 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
21938 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
21939 ADC_TP4_CH1,
21940 (dsfloat *)&L4_MABX_B.SFunction1_b);
21941 }
21942
21943 /* Gain: '<S411>/ShifterControlDC1' */
21944 L4_MABX_B.ShifterControlDC1 = L4_MABX_P.ShifterControlDC1_Gain *
21945 L4_MABX_B.SFunction1_b;
21946
21947 /* S-Function (rti_commonblock): '<S8>/S-Function1' */
21948 /* This comment workarounds a code generation problem */
21949
21950 /* S-Function (rti_commonblock): '<S9>/S-Function1' */
21951 /* This comment workarounds a code generation problem */
21952
21953 /* UnitDelay: '<S10>/Unit_Delay' */
21954 L4_MABX_B.Unit_Delay_jj = L4_MABX_DW.Unit_Delay_DSTATE_do;
21955
21956 /* Outputs for Enabled SubSystem: '<S10>/EnabledSubsystem' incorporates:
21957 * EnablePort: '<S1076>/Enable'
21958 */
21959 if (L4_MABX_B.Unit_Delay_jj) {
21960 /* Constant: '<S1076>/Constant' */
21961 memcpy(&GLB_SWVERSION_CPV_[0], &L4_MABX_P.GLB_SWVERSION_CPV[0], 100U *
21962 sizeof(uint8_T));
21963 }
21964
21965 /* End of Outputs for SubSystem: '<S10>/EnabledSubsystem' */
21966 /* user code (Output function Trailer for TID0) */
21967
21968 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
21969 /* EventChannel: 0 */
21970 if (tid == 0) {
21971 DSXCP_service(0);
21972 }
21973
21974 /* If subsystem generates rate grouping Output functions,
21975 * when tid is used in Output function for one rate,
21976 * all Output functions include tid as a local variable.
21977 * As result, some Output functions may have unused tid.
21978 */
21979 UNUSED_PARAMETER(tid);
21980}
21981
21982/* Model update function for TID0 */
21983void L4_MABX_update0(void) /* Sample time: [0.01s, 0.0s] */
21984{
21985 int32_T i;
21986
21987 /* Update for UnitDelay: '<S781>/FixPt Unit Delay2' incorporates:
21988 * Constant: '<S781>/FixPt Constant'
21989 */
21990 L4_MABX_DW.FixPtUnitDelay2_DSTATE = L4_MABX_P.FixPtConstant_Value_hh;
21991
21992 /* Update for UnitDelay: '<S781>/FixPt Unit Delay1' */
21993 L4_MABX_DW.FixPtUnitDelay1_DSTATE = L4_MABX_B.If_Then_Else_l.Switch;
21994
21995 /* Update for UnitDelay: '<S773>/FixPt Unit Delay2' incorporates:
21996 * Constant: '<S773>/FixPt Constant'
21997 */
21998 L4_MABX_DW.FixPtUnitDelay2_DSTATE_a = L4_MABX_P.FixPtConstant_Value_kw;
21999
22000 /* Update for UnitDelay: '<S773>/FixPt Unit Delay1' */
22001 L4_MABX_DW.FixPtUnitDelay1_DSTATE_h = L4_MABX_B.If_Then_Else_d.Switch;
22002
22003 /* Update for UnitDelay: '<S797>/FixPt Unit Delay2' incorporates:
22004 * Constant: '<S797>/FixPt Constant'
22005 */
22006 L4_MABX_DW.FixPtUnitDelay2_DSTATE_i = L4_MABX_P.FixPtConstant_Value_hn;
22007
22008 /* Update for UnitDelay: '<S797>/FixPt Unit Delay1' */
22009 L4_MABX_DW.FixPtUnitDelay1_DSTATE_l = L4_MABX_B.If_Then_Else_p.Switch;
22010
22011 /* Update for UnitDelay: '<S789>/FixPt Unit Delay2' incorporates:
22012 * Constant: '<S789>/FixPt Constant'
22013 */
22014 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j = L4_MABX_P.FixPtConstant_Value_mx;
22015
22016 /* Update for UnitDelay: '<S789>/FixPt Unit Delay1' */
22017 L4_MABX_DW.FixPtUnitDelay1_DSTATE_c = L4_MABX_B.If_Then_Else_e.Switch;
22018
22019 /* Update for UnitDelay: '<S751>/Unit_Delay' incorporates:
22020 * Constant: '<S751>/Constant'
22021 */
22022 L4_MABX_DW.Unit_Delay_DSTATE_gn = L4_MABX_P.Constant_Value_dy;
22023
22024 /* Update for UnitDelay: '<S818>/Unit_Delay1' incorporates:
22025 * Constant: '<S818>/Constant'
22026 */
22027 L4_MABX_DW.Unit_Delay1_DSTATE = L4_MABX_P.Constant_Value_gu;
22028
22029 /* Update for UnitDelay: '<S818>/Unit_Delay2' */
22030 L4_MABX_DW.Unit_Delay2_DSTATE = L4_MABX_B.If_Then_Else_b.Switch;
22031
22032 /* Update for UnitDelay: '<S751>/Unit_Delay1' incorporates:
22033 * Constant: '<S751>/Constant1'
22034 */
22035 L4_MABX_DW.Unit_Delay1_DSTATE_e = L4_MABX_P.Constant1_Value_md;
22036
22037 /* Update for UnitDelay: '<S819>/Unit_Delay1' incorporates:
22038 * Constant: '<S819>/Constant'
22039 */
22040 L4_MABX_DW.Unit_Delay1_DSTATE_ef = L4_MABX_P.Constant_Value_ps;
22041
22042 /* Update for UnitDelay: '<S819>/Unit_Delay2' */
22043 L4_MABX_DW.Unit_Delay2_DSTATE_d = L4_MABX_B.If_Then_Else_m.Switch;
22044
22045 /* Update for UnitDelay: '<S817>/FixPt Unit Delay2' incorporates:
22046 * Constant: '<S817>/FixPt Constant'
22047 */
22048 L4_MABX_DW.FixPtUnitDelay2_DSTATE_n = L4_MABX_P.FixPtConstant_Value_i;
22049
22050 /* Update for UnitDelay: '<S817>/FixPt Unit Delay1' */
22051 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hb = L4_MABX_B.If_Then_Else3_o.Switch;
22052
22053 /* Update for UnitDelay: '<S816>/FixPt Unit Delay2' incorporates:
22054 * Constant: '<S816>/FixPt Constant'
22055 */
22056 L4_MABX_DW.FixPtUnitDelay2_DSTATE_m = L4_MABX_P.FixPtConstant_Value_hq;
22057
22058 /* Update for UnitDelay: '<S816>/FixPt Unit Delay1' */
22059 L4_MABX_DW.FixPtUnitDelay1_DSTATE_e = L4_MABX_B.If_Then_Else1_i.Switch;
22060
22061 /* Update for UnitDelay: '<S805>/FixPt Unit Delay2' incorporates:
22062 * Constant: '<S805>/FixPt Constant'
22063 */
22064 L4_MABX_DW.FixPtUnitDelay2_DSTATE_c = L4_MABX_P.FixPtConstant_Value_nq;
22065
22066 /* Update for UnitDelay: '<S805>/FixPt Unit Delay1' */
22067 L4_MABX_DW.FixPtUnitDelay1_DSTATE_ea = L4_MABX_B.If_Then_Else_k.Switch;
22068
22069 /* Update for Enabled SubSystem: '<S737>/Slew_at_event' incorporates:
22070 * EnablePort: '<S752>/Enable'
22071 */
22072 if (L4_MABX_DW.Slew_at_event_MODE) {
22073 /* Update for UnitDelay: '<S823>/Unit_Delay' */
22074 L4_MABX_DW.Unit_Delay_DSTATE_po = L4_MABX_B.LogicalOperator6_p;
22075
22076 /* Update for UnitDelay: '<S824>/Unit_Delay' incorporates:
22077 * Constant: '<S824>/Constant'
22078 */
22079 L4_MABX_DW.Unit_Delay_DSTATE_bq = L4_MABX_P.Constant_Value_ie4;
22080
22081 /* Update for UnitDelay: '<S827>/FixPt Unit Delay2' incorporates:
22082 * Constant: '<S827>/FixPt Constant'
22083 */
22084 L4_MABX_DW.FixPtUnitDelay2_DSTATE_d = L4_MABX_P.FixPtConstant_Value_kf;
22085
22086 /* Update for UnitDelay: '<S827>/FixPt Unit Delay1' */
22087 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g = L4_MABX_B.If_Then_Else_m3.Switch;
22088
22089 /* Update for UnitDelay: '<S822>/Unit_Delay' */
22090 L4_MABX_DW.Unit_Delay_DSTATE_c1 = L4_MABX_B.LogicalOperator_g;
22091 }
22092
22093 /* End of Update for SubSystem: '<S737>/Slew_at_event' */
22094
22095 /* Update for Enabled SubSystem: '<S431>/CAN_RX_EC1_00' incorporates:
22096 * EnablePort: '<S515>/Enable'
22097 */
22098 if (L4_MABX_B.LogicalOperator_k) {
22099 /* Update for UnitDelay: '<S515>/Unit Delay' */
22100 for (i = 0; i < 39; i++) {
22101 L4_MABX_DW.UnitDelay_DSTATE_ek[i] = L4_MABX_B.Data_l[i];
22102 }
22103
22104 /* End of Update for UnitDelay: '<S515>/Unit Delay' */
22105
22106 /* Update for Enabled SubSystem: '<S515>/Decode' incorporates:
22107 * EnablePort: '<S518>/Enable'
22108 */
22109 if (L4_MABX_B.RX_status_el) {
22110 /* Update for UnitDelay: '<S518>/Unit_Delay' */
22111 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_B.timeStamp_f;
22112 }
22113
22114 /* End of Update for SubSystem: '<S515>/Decode' */
22115 }
22116
22117 /* End of Update for SubSystem: '<S431>/CAN_RX_EC1_00' */
22118
22119 /* Update for UnitDelay: '<S644>/Unit_Delay3' */
22120 L4_MABX_DW.Unit_Delay3_DSTATE = L4_MABX_B.LogicalOperator2_p;
22121
22122 /* Update for Enabled SubSystem: '<S454>/CAN_RX_VI_00' incorporates:
22123 * EnablePort: '<S643>/Enable'
22124 */
22125 if (L4_MABX_B.LogicalOperator_o) {
22126 /* Update for UnitDelay: '<S643>/Unit Delay' */
22127 for (i = 0; i < 17; i++) {
22128 L4_MABX_DW.UnitDelay_DSTATE_pd[i] = L4_MABX_B.Data[i];
22129 }
22130
22131 /* End of Update for UnitDelay: '<S643>/Unit Delay' */
22132
22133 /* Update for Enabled SubSystem: '<S643>/Decode' incorporates:
22134 * EnablePort: '<S646>/Enable'
22135 */
22136 if (L4_MABX_B.RX_status_a1) {
22137 /* Update for UnitDelay: '<S646>/Unit_Delay' */
22138 L4_MABX_DW.Unit_Delay_DSTATE_o = L4_MABX_B.timeStamp;
22139 }
22140
22141 /* End of Update for SubSystem: '<S643>/Decode' */
22142 }
22143
22144 /* End of Update for SubSystem: '<S454>/CAN_RX_VI_00' */
22145
22146 /* Update for UnitDelay: '<S644>/Unit_Delay' incorporates:
22147 * Constant: '<S644>/Constant'
22148 */
22149 L4_MABX_DW.Unit_Delay_DSTATE_k = L4_MABX_P.Constant_Value_em;
22150
22151 /* Update for UnitDelay: '<S650>/Unit_Delay' */
22152 L4_MABX_DW.Unit_Delay_DSTATE_of = L4_MABX_B.LogicalOperator1_h;
22153
22154 /* Update for UnitDelay: '<S3>/Unit_Delay' */
22155 L4_MABX_DW.Unit_Delay_79_DSTATE = EStop;
22156 L4_MABX_DW.Unit_Delay_80_DSTATE = EnableSw;
22157 L4_MABX_DW.Unit_Delay_81_DSTATE = EngagePB;
22158 L4_MABX_DW.Unit_Delay_140_DSTATE = TargetVelocity_kph;
22159 L4_MABX_DW.Unit_Delay_139_DSTATE = CurrentVelocity_kph;
22160 L4_MABX_DW.Unit_Delay_82_DSTATE = LogEventPB;
22161 L4_MABX_DW.Unit_Delay_45_DSTATE = AutonomousEnabled;
22162 L4_MABX_DW.Unit_Delay_47_DSTATE = MABX_Mode;
22163
22164 /* Update for UnitDelay: '<S398>/Delay Input1' */
22165 L4_MABX_DW.DelayInput1_DSTATE_n = L4_MABX_B.Compare_c;
22166
22167 /* Update for UnitDelay: '<S396>/Unit Delay' */
22168 L4_MABX_DW.UnitDelay_DSTATE = L4_MABX_B.Count;
22169
22170 /* Update for Atomic SubSystem: '<S65>/Task_10ms' */
22171 /* Update for Enabled SubSystem: '<S79>/Throttle_controller_gov' incorporates:
22172 * EnablePort: '<S206>/Enable'
22173 */
22174 if (L4_MABX_DW.Throttle_controller_gov_MODE) {
22175 /* Update for UnitDelay: '<S214>/Unit_Delay1' incorporates:
22176 * Constant: '<S214>/Constant3'
22177 */
22178 L4_MABX_DW.Unit_Delay1_DSTATE_p1 = L4_MABX_P.Constant3_Value_lp;
22179
22180 /* Update for UnitDelay: '<S214>/Unit_Delay' */
22181 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_B.RelationalOperator_fl;
22182
22183 /* Update for UnitDelay: '<S241>/Unit_Delay' incorporates:
22184 * Constant: '<S241>/Constant'
22185 */
22186 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Constant_Value_ck;
22187
22188 /* Update for UnitDelay: '<S261>/Unit_Delay1' incorporates:
22189 * Constant: '<S261>/Constant'
22190 */
22191 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Constant_Value_ot;
22192
22193 /* Update for UnitDelay: '<S262>/Unit_Delay' incorporates:
22194 * Constant: '<S262>/Constant'
22195 */
22196 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Constant_Value_h0;
22197
22198 /* Update for UnitDelay: '<S266>/FixPt Unit Delay2' incorporates:
22199 * Constant: '<S266>/FixPt Constant'
22200 */
22201 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq = L4_MABX_P.FixPtConstant_Value_jk;
22202
22203 /* Update for UnitDelay: '<S266>/FixPt Unit Delay1' */
22204 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a = L4_MABX_B.If_Then_Else_cp.Switch;
22205
22206 /* Update for UnitDelay: '<S261>/Unit_Delay2' */
22207 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_B.If_Then_Else_k2.Switch;
22208
22209 /* Update for Enabled SubSystem: '<S238>/Calculate_D_term' */
22210 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term_h,
22211 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
22212
22213 /* End of Update for SubSystem: '<S238>/Calculate_D_term' */
22214
22215 /* Update for UnitDelay: '<S216>/Unit_Delay' */
22216 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_B.Add_ds;
22217
22218 /* Update for Enabled SubSystem: '<S238>/Calculate_I_term' */
22219 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term_n,
22220 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
22221
22222 /* End of Update for SubSystem: '<S238>/Calculate_I_term' */
22223 }
22224
22225 /* End of Update for SubSystem: '<S79>/Throttle_controller_gov' */
22226
22227 /* Update for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' incorporates:
22228 * EnablePort: '<S178>/Enable'
22229 */
22230 if (L4_MABX_DW.Determine_shift_interlock_brake) {
22231 /* Update for UnitDelay: '<S178>/Unit_Delay' */
22232 L4_MABX_DW.Unit_Delay_DSTATE_ob = L4_MABX_B.If_Then_Else_il.Switch;
22233
22234 /* Update for UnitDelay: '<S188>/Unit_Delay' incorporates:
22235 * Constant: '<S188>/Constant'
22236 */
22237 L4_MABX_DW.Unit_Delay_DSTATE_ae = L4_MABX_P.Constant_Value_ii;
22238
22239 /* Update for UnitDelay: '<S192>/FixPt Unit Delay2' incorporates:
22240 * Constant: '<S192>/FixPt Constant'
22241 */
22242 L4_MABX_DW.FixPtUnitDelay2_DSTATE_l = L4_MABX_P.FixPtConstant_Value_k;
22243
22244 /* Update for UnitDelay: '<S192>/FixPt Unit Delay1' */
22245 L4_MABX_DW.FixPtUnitDelay1_DSTATE_d = L4_MABX_B.If_Then_Else_ep.Switch;
22246
22247 /* Update for UnitDelay: '<S189>/Unit_Delay' */
22248 L4_MABX_DW.Unit_Delay_DSTATE_om = L4_MABX_B.DigitalClock_e;
22249 }
22250
22251 /* End of Update for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
22252
22253 /* Update for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' incorporates:
22254 * EnablePort: '<S177>/Enable'
22255 */
22256 if (L4_MABX_DW.Determine_brake_hold_pressure_t) {
22257 /* Update for UnitDelay: '<S177>/Unit_Delay' */
22258 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_B.If_Then_Else_gj.Switch;
22259
22260 /* Update for UnitDelay: '<S181>/Unit_Delay' incorporates:
22261 * Constant: '<S181>/Constant'
22262 */
22263 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Constant_Value_m3;
22264
22265 /* Update for UnitDelay: '<S185>/FixPt Unit Delay2' incorporates:
22266 * Constant: '<S185>/FixPt Constant'
22267 */
22268 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je = L4_MABX_P.FixPtConstant_Value_a;
22269
22270 /* Update for UnitDelay: '<S185>/FixPt Unit Delay1' */
22271 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b = L4_MABX_B.If_Then_Else_nz.Switch;
22272
22273 /* Update for UnitDelay: '<S182>/Unit_Delay' */
22274 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_B.DigitalClock_c;
22275 }
22276
22277 /* End of Update for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
22278
22279 /* Update for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' incorporates:
22280 * EnablePort: '<S96>/Enable'
22281 */
22282 if (L4_MABX_DW.Bendix_2C2_brake_application_pr) {
22283 /* Update for UnitDelay: '<S105>/Unit_Delay' */
22284 L4_MABX_DW.Unit_Delay_DSTATE_dc = L4_MABX_B.DigitalClock_j;
22285
22286 /* Update for UnitDelay: '<S109>/Unit_Delay' incorporates:
22287 * Constant: '<S109>/Constant'
22288 */
22289 L4_MABX_DW.Unit_Delay_DSTATE_omj = L4_MABX_P.Constant_Value_lo;
22290
22291 /* Update for UnitDelay: '<S129>/Unit_Delay1' incorporates:
22292 * Constant: '<S129>/Constant'
22293 */
22294 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Constant_Value_olo;
22295
22296 /* Update for UnitDelay: '<S130>/Unit_Delay' incorporates:
22297 * Constant: '<S130>/Constant'
22298 */
22299 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Constant_Value_hi;
22300
22301 /* Update for UnitDelay: '<S134>/FixPt Unit Delay2' incorporates:
22302 * Constant: '<S134>/FixPt Constant'
22303 */
22304 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm = L4_MABX_P.FixPtConstant_Value_f;
22305
22306 /* Update for UnitDelay: '<S134>/FixPt Unit Delay1' */
22307 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 = L4_MABX_B.If_Then_Else_bg.Switch;
22308
22309 /* Update for UnitDelay: '<S129>/Unit_Delay2' */
22310 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_B.If_Then_Else_ly.Switch;
22311
22312 /* Update for Enabled SubSystem: '<S106>/Calculate_D_term' */
22313 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term,
22314 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
22315
22316 /* End of Update for SubSystem: '<S106>/Calculate_D_term' */
22317
22318 /* Update for UnitDelay: '<S104>/Unit_Delay' */
22319 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_B.Add_e;
22320
22321 /* Update for Enabled SubSystem: '<S106>/Calculate_I_term' */
22322 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term,
22323 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
22324
22325 /* End of Update for SubSystem: '<S106>/Calculate_I_term' */
22326 }
22327
22328 /* End of Update for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
22329
22330 /* Update for UnitDelay: '<S383>/Unit_Delay' */
22331 L4_MABX_DW.Unit_Delay_DSTATE_cx = L4_MABX_B.LogicalOperator2_f;
22332
22333 /* Update for UnitDelay: '<S384>/Unit_Delay' incorporates:
22334 * Constant: '<S384>/Constant'
22335 */
22336 L4_MABX_DW.Unit_Delay_DSTATE_d0 = L4_MABX_P.Constant_Value_c1;
22337
22338 /* Update for UnitDelay: '<S341>/Unit_Delay' */
22339 L4_MABX_DW.Unit_Delay_DSTATE_e = L4_MABX_B.If_Then_Else_m4.Switch;
22340
22341 /* Update for UnitDelay: '<S388>/FixPt Unit Delay2' incorporates:
22342 * Constant: '<S388>/FixPt Constant'
22343 */
22344 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aq = L4_MABX_P.FixPtConstant_Value_jx;
22345
22346 /* Update for UnitDelay: '<S388>/FixPt Unit Delay1' */
22347 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hj = L4_MABX_B.If_Then_Else_m4.Switch;
22348
22349 /* Update for UnitDelay: '<S385>/Unit_Delay' */
22350 L4_MABX_DW.Unit_Delay_DSTATE_m = L4_MABX_B.DigitalClock;
22351
22352 /* Update for UnitDelay: '<S372>/Unit_Delay' */
22353 L4_MABX_DW.Unit_Delay_DSTATE_iy = L4_MABX_B.LogicalOperator1_gm;
22354
22355 /* Update for UnitDelay: '<S373>/Unit_Delay' incorporates:
22356 * Constant: '<S373>/Constant'
22357 */
22358 L4_MABX_DW.Unit_Delay_DSTATE_mv = L4_MABX_P.Constant_Value_am;
22359
22360 /* Update for UnitDelay: '<S339>/Unit_Delay' */
22361 L4_MABX_DW.Unit_Delay_DSTATE_g = L4_MABX_B.If_Then_Else_bf.Switch;
22362
22363 /* Update for UnitDelay: '<S377>/FixPt Unit Delay2' incorporates:
22364 * Constant: '<S377>/FixPt Constant'
22365 */
22366 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip = L4_MABX_P.FixPtConstant_Value_d;
22367
22368 /* Update for UnitDelay: '<S377>/FixPt Unit Delay1' */
22369 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq = L4_MABX_B.If_Then_Else_bf.Switch;
22370
22371 /* Update for UnitDelay: '<S374>/Unit_Delay' */
22372 L4_MABX_DW.Unit_Delay_DSTATE_bw = L4_MABX_B.DigitalClock_b;
22373
22374 /* Update for UnitDelay: '<S336>/Delay Input1' */
22375 L4_MABX_DW.DelayInput1_DSTATE[0] = L4_MABX_B.Distance_to_achieve_speed_targe;
22376 L4_MABX_DW.DelayInput1_DSTATE[1] = L4_MABX_B.Vehicle_speed_target_o;
22377
22378 /* Update for UnitDelay: '<S354>/Unit_Delay' */
22379 L4_MABX_DW.Unit_Delay_DSTATE_bwg = L4_MABX_B.If_Then_Else_og.Switch;
22380
22381 /* Update for UnitDelay: '<S356>/Unit_Delay' */
22382 L4_MABX_DW.Unit_Delay_DSTATE_ko = L4_MABX_B.LogicalOperator1_p;
22383
22384 /* Update for UnitDelay: '<S365>/FixPt Unit Delay2' incorporates:
22385 * Constant: '<S365>/FixPt Constant'
22386 */
22387 L4_MABX_DW.FixPtUnitDelay2_DSTATE_f = L4_MABX_P.FixPtConstant_Value_gy;
22388
22389 /* Update for UnitDelay: '<S365>/FixPt Unit Delay1' */
22390 L4_MABX_DW.FixPtUnitDelay1_DSTATE_li = L4_MABX_B.Xnew;
22391
22392 /* Update for UnitDelay: '<S363>/Unit_Delay' */
22393 L4_MABX_DW.Unit_Delay_DSTATE_p = L4_MABX_B.DigitalClock_f;
22394
22395 /* Update for UnitDelay: '<S343>/Delay Input1' */
22396 L4_MABX_DW.DelayInput1_DSTATE_f[0] = L4_MABX_B.Distance_to_achieve_speed_targe;
22397 L4_MABX_DW.DelayInput1_DSTATE_f[1] = L4_MABX_B.Vehicle_speed_target_o;
22398
22399 /* Update for UnitDelay: '<S345>/Unit_Delay' incorporates:
22400 * Constant: '<S345>/Constant'
22401 */
22402 L4_MABX_DW.Unit_Delay_DSTATE_la = L4_MABX_P.Constant_Value_pu;
22403
22404 /* Update for UnitDelay: '<S349>/FixPt Unit Delay2' incorporates:
22405 * Constant: '<S349>/FixPt Constant'
22406 */
22407 L4_MABX_DW.FixPtUnitDelay2_DSTATE_cn = L4_MABX_P.FixPtConstant_Value_az;
22408
22409 /* Update for UnitDelay: '<S349>/FixPt Unit Delay1' */
22410 L4_MABX_DW.FixPtUnitDelay1_DSTATE_ej = L4_MABX_B.If_Then_Else_pz.Switch;
22411
22412 /* Update for UnitDelay: '<S344>/Unit_Delay' */
22413 L4_MABX_DW.Unit_Delay_1_DSTATE_j =
22414 L4_MABX_B.If_Then_Else_mm.Vehicle_speed_target;
22415 L4_MABX_DW.Unit_Delay_2_DSTATE_e = L4_MABX_B.If_Then_Else_mm.Vehicle_speed;
22416 L4_MABX_DW.Unit_Delay_3_DSTATE_j = L4_MABX_B.If_Then_Else_mm.Distance_m;
22417
22418 /* Update for UnitDelay: '<S342>/Unit_Delay' */
22419 L4_MABX_DW.Unit_Delay_DSTATE_f = L4_MABX_B.DigitalClock_p;
22420
22421 /* Update for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' incorporates:
22422 * EnablePort: '<S97>/Enable'
22423 */
22424 if (L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
22425 /* Update for UnitDelay: '<S140>/Unit_Delay' */
22426 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_B.DigitalClock_n;
22427
22428 /* Update for UnitDelay: '<S147>/Unit_Delay' incorporates:
22429 * Constant: '<S147>/Constant'
22430 */
22431 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Constant_Value_j5;
22432
22433 /* Update for UnitDelay: '<S167>/Unit_Delay1' incorporates:
22434 * Constant: '<S167>/Constant'
22435 */
22436 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Constant_Value_bd;
22437
22438 /* Update for UnitDelay: '<S168>/Unit_Delay' incorporates:
22439 * Constant: '<S168>/Constant'
22440 */
22441 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Constant_Value_m2;
22442
22443 /* Update for UnitDelay: '<S172>/FixPt Unit Delay2' incorporates:
22444 * Constant: '<S172>/FixPt Constant'
22445 */
22446 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o = L4_MABX_P.FixPtConstant_Value_j1;
22447
22448 /* Update for UnitDelay: '<S172>/FixPt Unit Delay1' */
22449 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 = L4_MABX_B.If_Then_Else_iy.Switch;
22450
22451 /* Update for UnitDelay: '<S167>/Unit_Delay2' */
22452 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_B.If_Then_Else_bc.Switch;
22453
22454 /* Update for Enabled SubSystem: '<S144>/Calculate_D_term' */
22455 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term_p,
22456 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
22457
22458 /* End of Update for SubSystem: '<S144>/Calculate_D_term' */
22459
22460 /* Update for UnitDelay: '<S139>/Unit_Delay' */
22461 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_B.Add_mh;
22462
22463 /* Update for Enabled SubSystem: '<S144>/Calculate_I_term' */
22464 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term_e,
22465 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
22466
22467 /* End of Update for SubSystem: '<S144>/Calculate_I_term' */
22468 }
22469
22470 /* End of Update for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
22471
22472 /* Update for UnitDelay: '<S101>/Unit_Delay' incorporates:
22473 * Constant: '<S101>/Constant7'
22474 */
22475 L4_MABX_DW.Unit_Delay_DSTATE_eu4 = L4_MABX_P.Constant7_Value_j;
22476
22477 /* Update for UnitDelay: '<S197>/Unit_Delay1' incorporates:
22478 * Constant: '<S197>/Constant'
22479 */
22480 L4_MABX_DW.Unit_Delay1_DSTATE_d = L4_MABX_P.Constant_Value_jf;
22481
22482 /* Update for UnitDelay: '<S197>/Unit_Delay2' */
22483 L4_MABX_DW.Unit_Delay2_DSTATE_e = L4_MABX_B.If_Then_Else_ga.Switch;
22484
22485 /* Update for UnitDelay: '<S196>/UD' */
22486 L4_MABX_DW.UD_DSTATE = L4_MABX_B.TSamp;
22487
22488 /* Update for UnitDelay: '<S321>/Unit_Delay1' incorporates:
22489 * Constant: '<S321>/Constant'
22490 */
22491 L4_MABX_DW.Unit_Delay1_DSTATE_db = L4_MABX_P.Constant_Value_hx;
22492
22493 /* Update for UnitDelay: '<S321>/Unit_Delay2' */
22494 L4_MABX_DW.Unit_Delay2_DSTATE_dv = L4_MABX_B.If_Then_Else_b3.Switch;
22495
22496 /* Update for UnitDelay: '<S320>/Delay Input1' */
22497 L4_MABX_DW.DelayInput1_DSTATE_f0 = L4_MABX_B.JumpNearEdge;
22498
22499 /* Update for UnitDelay: '<S322>/Unit_Delay1' incorporates:
22500 * Constant: '<S322>/Constant'
22501 */
22502 L4_MABX_DW.Unit_Delay1_DSTATE_a = L4_MABX_P.Constant_Value_bh;
22503
22504 /* Update for UnitDelay: '<S322>/Unit_Delay2' */
22505 L4_MABX_DW.Unit_Delay2_DSTATE_i = L4_MABX_B.If_Then_Else_mk.Switch;
22506
22507 /* Update for UnitDelay: '<S323>/Unit_Delay1' incorporates:
22508 * Constant: '<S323>/Constant'
22509 */
22510 L4_MABX_DW.Unit_Delay1_DSTATE_p = L4_MABX_P.Constant_Value_hxo;
22511
22512 /* Update for UnitDelay: '<S323>/Unit_Delay2' */
22513 L4_MABX_DW.Unit_Delay2_DSTATE_p = L4_MABX_B.If_Then_Else_lh.Switch;
22514
22515 /* Update for Enabled SubSystem: '<S277>/Slew_at_event' incorporates:
22516 * EnablePort: '<S328>/Enable'
22517 */
22518 if (L4_MABX_DW.Slew_at_event_MODE_d) {
22519 /* Update for UnitDelay: '<S330>/Unit_Delay' */
22520 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_B.DataTypeConversion_l1;
22521
22522 /* Update for UnitDelay: '<S331>/Unit_Delay' incorporates:
22523 * Constant: '<S331>/Constant'
22524 */
22525 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Constant_Value_hg;
22526
22527 /* Update for UnitDelay: '<S334>/FixPt Unit Delay2' incorporates:
22528 * Constant: '<S334>/FixPt Constant'
22529 */
22530 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ji = L4_MABX_P.FixPtConstant_Value_n;
22531
22532 /* Update for UnitDelay: '<S334>/FixPt Unit Delay1' */
22533 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o = L4_MABX_B.If_Then_Else_n3.Switch;
22534
22535 /* Update for UnitDelay: '<S329>/Unit_Delay' */
22536 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_B.LogicalOperator_dm;
22537 }
22538
22539 /* End of Update for SubSystem: '<S277>/Slew_at_event' */
22540
22541 /* Update for UnitDelay: '<S279>/Unit Delay' */
22542 L4_MABX_DW.UnitDelay_DSTATE_d = L4_MABX_B.Switch1_fi;
22543
22544 /* Update for UnitDelay: '<S289>/Unit Delay' */
22545 L4_MABX_DW.UnitDelay_DSTATE_m = L4_MABX_B.Add1_m;
22546
22547 /* Update for UnitDelay: '<S290>/Unit Delay' */
22548 L4_MABX_DW.UnitDelay_DSTATE_m0 = L4_MABX_B.Switch_k;
22549
22550 /* Update for UnitDelay: '<S290>/Unit Delay1' */
22551 L4_MABX_DW.UnitDelay1_DSTATE_k = L4_MABX_B.Divide1_b;
22552
22553 /* Update for UnitDelay: '<S284>/Unit Delay' */
22554 L4_MABX_DW.UnitDelay_DSTATE_m1 = L4_MABX_B.Switch1_pb;
22555
22556 /* Update for UnitDelay: '<S302>/Delay Input2' */
22557 L4_MABX_DW.DelayInput2_DSTATE = L4_MABX_B.DifferenceInputs2;
22558
22559 /* Update for DiscreteIntegrator: '<S301>/Integrator' */
22560 L4_MABX_DW.Integrator_DSTATE += L4_MABX_P.Integrator_gainval *
22561 L4_MABX_B.IntegralGain;
22562 L4_MABX_DW.Integrator_PrevResetState = (int8_T)AutonomousEnabled;
22563
22564 /* Update for DiscreteIntegrator: '<S301>/Filter' */
22565 L4_MABX_DW.Filter_DSTATE += L4_MABX_P.Filter_gainval *
22566 L4_MABX_B.FilterCoefficient;
22567 L4_MABX_DW.Filter_PrevResetState = (int8_T)AutonomousEnabled;
22568
22569 /* Update for UnitDelay: '<S305>/Delay Input' */
22570 L4_MABX_DW.DelayInput_DSTATE = L4_MABX_B.Saturate;
22571
22572 /* Update for UnitDelay: '<S305>/Delay Output' */
22573 L4_MABX_DW.DelayOutput_DSTATE = L4_MABX_B.Downcast;
22574
22575 /* Update for UnitDelay: '<S303>/Delay Input2' */
22576 L4_MABX_DW.DelayInput2_DSTATE_a = L4_MABX_B.DifferenceInputs2_a;
22577
22578 /* Update for DiscreteIntegrator: '<S295>/Discrete-Time Integrator' */
22579 L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI = 0U;
22580 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE +=
22581 L4_MABX_P.DiscreteTimeIntegrator_gainval * L4_MABX_B.Gain_o;
22582 L4_MABX_DW.DiscreteTimeIntegrator_PrevRese = (int8_T)AutonomousEnabled;
22583
22584 /* Update for UnitDelay: '<S315>/Delay Input2' */
22585 L4_MABX_DW.DelayInput2_DSTATE_l = L4_MABX_B.DifferenceInputs2_m;
22586
22587 /* Update for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' incorporates:
22588 * Constant: '<S80>/ResetIntegrator'
22589 */
22590 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e +=
22591 L4_MABX_P.DiscreteTimeIntegrator_gainva_l * L4_MABX_B.Switch1_p;
22592 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e >=
22593 L4_MABX_P.DiscreteTimeIntegrator_UpperSat) {
22594 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
22595 L4_MABX_P.DiscreteTimeIntegrator_UpperSat;
22596 } else {
22597 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e <=
22598 L4_MABX_P.DiscreteTimeIntegrator_LowerSat) {
22599 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
22600 L4_MABX_P.DiscreteTimeIntegrator_LowerSat;
22601 }
22602 }
22603
22604 if (L4_MABX_P.ResetIntegrator_Value > 0.0) {
22605 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 1;
22606 } else if (L4_MABX_P.ResetIntegrator_Value < 0.0) {
22607 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = -1;
22608 } else if (L4_MABX_P.ResetIntegrator_Value == 0.0) {
22609 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 0;
22610 } else {
22611 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 2;
22612 }
22613
22614 /* End of Update for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
22615
22616 /* Update for UnitDelay: '<S80>/Unit Delay' */
22617 L4_MABX_DW.UnitDelay_DSTATE_e = L4_MABX_B.Switch2_i1;
22618
22619 /* Update for UnitDelay: '<S367>/FixPt Unit Delay2' incorporates:
22620 * Constant: '<S367>/FixPt Constant'
22621 */
22622 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw = L4_MABX_P.FixPtConstant_Value_p;
22623
22624 /* Update for UnitDelay: '<S367>/FixPt Unit Delay1' */
22625 L4_MABX_DW.FixPtUnitDelay1_DSTATE_p = L4_MABX_B.Xnew_h;
22626
22627 /* Update for UnitDelay: '<S368>/FixPt Unit Delay2' incorporates:
22628 * Constant: '<S368>/FixPt Constant'
22629 */
22630 L4_MABX_DW.FixPtUnitDelay2_DSTATE_g = L4_MABX_P.FixPtConstant_Value_el;
22631
22632 /* Update for UnitDelay: '<S368>/FixPt Unit Delay1' */
22633 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g0 = L4_MABX_B.Xnew_f;
22634
22635 /* Update for UnitDelay: '<S362>/Unit_Delay' */
22636 L4_MABX_DW.Unit_Delay_DSTATE_j = L4_MABX_B.DigitalClock_d;
22637
22638 /* End of Update for SubSystem: '<S65>/Task_10ms' */
22639
22640 /* Update for Atomic SubSystem: '<S834>/CAN_TX_10ms' */
22641
22642 /* Update for UnitDelay: '<S991>/Unit_Delay' */
22643 L4_MABX_DW.Unit_Delay_DSTATE_o4 = L4_MABX_B.Operator_ll3;
22644
22645 /* Update for UnitDelay: '<S992>/Unit Delay' */
22646 L4_MABX_DW.UnitDelay_DSTATE_n = L4_MABX_B.Switch1_c;
22647
22648 /* End of Update for SubSystem: '<S834>/CAN_TX_10ms' */
22649
22650 /* Update for UnitDelay: '<S844>/Unit Delay2' */
22651 L4_MABX_DW.UnitDelay2_DSTATE = L4_MABX_B.enTPCM;
22652
22653 /* Update for UnitDelay: '<S844>/Unit Delay1' */
22654 L4_MABX_DW.UnitDelay1_DSTATE_h = L4_MABX_B.TPDT_count;
22655
22656 /* Update for UnitDelay: '<S844>/Unit Delay3' */
22657 L4_MABX_DW.UnitDelay3_DSTATE = L4_MABX_B.enTPDT;
22658
22659 /* Update for UnitDelay: '<S3>/Unit_Delay' incorporates:
22660 * Constant: '<S202>/Constant'
22661 * Constant: '<S80>/zero'
22662 */
22663 L4_MABX_DW.Unit_Delay_1_DSTATE = L4_MABX_B.Subtract_c1;
22664 L4_MABX_DW.Unit_Delay_10_DSTATE = L4_MABX_B.Add1_h;
22665 L4_MABX_DW.Unit_Delay_100_DSTATE = L4_MABX_B.SPN2978_EstEngParasiticLossesPe;
22666 L4_MABX_DW.Unit_Delay_101_DSTATE = L4_MABX_B.SPN1760_GrossCombinationVehicle;
22667 L4_MABX_DW.Unit_Delay_102_DSTATE = L4_MABX_B.ACCDistanceAlertSignal;
22668 L4_MABX_DW.Unit_Delay_103_DSTATE = L4_MABX_B.ForwardCollisionWarning;
22669 L4_MABX_DW.Unit_Delay_104_DSTATE = L4_MABX_B.SPN544_EngineReferenceTorque;
22670 L4_MABX_DW.Unit_Delay_105_DSTATE = L4_MABX_B.SFunction1_o4_lb;
22671 L4_MABX_DW.Unit_Delay_106_DSTATE = L4_MABX_B.SFunction1_o5_i;
22672 L4_MABX_DW.Unit_Delay_107_DSTATE = L4_MABX_B.SFunction1_o6_f;
22673 L4_MABX_DW.Unit_Delay_108_DSTATE = L4_MABX_B.SFunction1_o7_h;
22674 L4_MABX_DW.Unit_Delay_109_DSTATE = SteerWheelAngle;
22675 L4_MABX_DW.Unit_Delay_11_DSTATE = L4_MABX_B.Switch2_i1;
22676 L4_MABX_DW.Unit_Delay_110_DSTATE = YawRate;
22677 L4_MABX_DW.Unit_Delay_111_DSTATE = SPN1810_LongitudinalAcceleration;
22678 L4_MABX_DW.Unit_Delay_112_DSTATE = L4_MABX_B.SFunction1_o2_m3;
22679 L4_MABX_DW.Unit_Delay_113_DSTATE = L4_MABX_B.SFunction1_o3_f1;
22680 L4_MABX_DW.Unit_Delay_114_DSTATE = L4_MABX_B.SFunction1_o5_g;
22681 L4_MABX_DW.Unit_Delay_115_DSTATE = L4_MABX_B.SFunction1_o1_lz;
22682 L4_MABX_DW.Unit_Delay_116_DSTATE = L4_MABX_B.SFunction1_o3_awg;
22683 L4_MABX_DW.Unit_Delay_117_DSTATE = L4_MABX_B.LogicalOperator1_h;
22684 L4_MABX_DW.Unit_Delay_118_DSTATE = L4_MABX_B.LogicalOperator1_l;
22685 L4_MABX_DW.Unit_Delay_119_DSTATE = L4_MABX_B.PitchAngleExRange;
22686 L4_MABX_DW.Unit_Delay_12_DSTATE = L4_MABX_B.DiscreteTimeIntegrator_h;
22687 L4_MABX_DW.Unit_Delay_120_DSTATE = L4_MABX_B.SFunction1_o3_hs;
22688 L4_MABX_DW.Unit_Delay_121_DSTATE = L4_MABX_B.SFunction1_o1_cd;
22689 L4_MABX_DW.Unit_Delay_122_DSTATE = L4_MABX_B.SFunction1_o2_fl;
22690 L4_MABX_DW.Unit_Delay_123_DSTATE = L4_MABX_B.Latitude_;
22691 L4_MABX_DW.Unit_Delay_124_DSTATE = L4_MABX_B.Longitude_;
22692 L4_MABX_DW.Unit_Delay_125_DSTATE = L4_MABX_B.HDOP_;
22693 L4_MABX_DW.Unit_Delay_126_DSTATE = L4_MABX_B.XPRControlMode;
22694 L4_MABX_DW.Unit_Delay_127_DSTATE = L4_MABX_B.XPRErrorState;
22695 L4_MABX_DW.Unit_Delay_128_DSTATE = L4_MABX_B.PressureP1;
22696 L4_MABX_DW.Unit_Delay_129_DSTATE = L4_MABX_B.PressureP4;
22697 L4_MABX_DW.Unit_Delay_13_DSTATE = L4_MABX_B.numLanePoints_j;
22698 L4_MABX_DW.Unit_Delay_130_DSTATE = L4_MABX_B.PressureP21;
22699 L4_MABX_DW.Unit_Delay_131_DSTATE = L4_MABX_B.PressureP22;
22700 L4_MABX_DW.Unit_Delay_132_DSTATE = L4_MABX_B.PressureP42;
22701 L4_MABX_DW.Unit_Delay_133_DSTATE = ReAX_ActualHandwheelPos;
22702 L4_MABX_DW.Unit_Delay_134_DSTATE = ReAX_EchoedSteerWheelPos;
22703 L4_MABX_DW.Unit_Delay_135_DSTATE = RTMapsOk;
22704 L4_MABX_DW.Unit_Delay_136_DSTATE = SupervisorMode;
22705 L4_MABX_DW.Unit_Delay_137_DSTATE = CurrentAzimuth_rad;
22706 L4_MABX_DW.Unit_Delay_138_DSTATE = TargetAzimuth_rad;
22707 L4_MABX_DW.Unit_Delay_14_DSTATE = L4_MABX_B.correctedError;
22708 L4_MABX_DW.Unit_Delay_141_DSTATE = Curvature;
22709 L4_MABX_DW.Unit_Delay_142_DSTATE = CrosstrackError;
22710 L4_MABX_DW.Unit_Delay_15_DSTATE = L4_MABX_B.Switch1_j;
22711 L4_MABX_DW.Unit_Delay_16_DSTATE = L4_MABX_B.rad2deg1;
22712 L4_MABX_DW.Unit_Delay_17_DSTATE = L4_MABX_B.If_Then_Else_i.Switch;
22713 L4_MABX_DW.Unit_Delay_18_DSTATE = L4_MABX_B.APTC_arb_pedal_low_idl_sw_o;
22714 L4_MABX_DW.Unit_Delay_19_DSTATE = L4_MABX_B.If_Then_Else_f.Switch;
22715 L4_MABX_DW.Unit_Delay_2_DSTATE = L4_MABX_B.Add3;
22716 L4_MABX_DW.Unit_Delay_20_DSTATE = L4_MABX_P.Constant_Value_jg4;
22717 L4_MABX_DW.Unit_Delay_21_DSTATE = L4_MABX_B.If_Then_Else_pi.Switch;
22718 L4_MABX_DW.Unit_Delay_22_DSTATE = L4_MABX_B.Add_ds;
22719 L4_MABX_DW.Unit_Delay_23_DSTATE = L4_MABX_B.If_Then_Else_k2.Switch;
22720 L4_MABX_DW.Unit_Delay_24_DSTATE = L4_MABX_B.Product_i;
22721 L4_MABX_DW.Unit_Delay_25_DSTATE = L4_MABX_B.PID_i_term_c;
22722 L4_MABX_DW.Unit_Delay_26_DSTATE = L4_MABX_B.PID_d_term_c;
22723 L4_MABX_DW.Unit_Delay_27_DSTATE = L4_MABX_B.PID_hold_i_term_f_b;
22724 L4_MABX_DW.Unit_Delay_28_DSTATE = L4_MABX_B.ThrottlePID_Y_m;
22725 L4_MABX_DW.Unit_Delay_29_DSTATE = L4_MABX_B.MinMax1_n;
22726 L4_MABX_DW.Unit_Delay_3_DSTATE = L4_MABX_B.Add_px;
22727 L4_MABX_DW.Unit_Delay_30_DSTATE = L4_MABX_B.F_Ignition_relay_command_i;
22728 L4_MABX_DW.Unit_Delay_31_DSTATE = L4_MABX_B.F_Inverter_relay_command_p;
22729 L4_MABX_DW.Unit_Delay_32_DSTATE = L4_MABX_B.F_MABX_relay_command_n;
22730 L4_MABX_DW.Unit_Delay_33_DSTATE = L4_MABX_B.F_Sensor_relay_command_k;
22731 L4_MABX_DW.Unit_Delay_34_DSTATE = L4_MABX_B.BrkPedArbBrakeSwitch_c;
22732 L4_MABX_DW.Unit_Delay_35_DSTATE = L4_MABX_B.Diff;
22733 L4_MABX_DW.Unit_Delay_36_DSTATE = L4_MABX_B.F_Brake_control_active;
22734 L4_MABX_DW.Unit_Delay_37_DSTATE = L4_MABX_B.F_Hold_brakes_at_zero_d;
22735 L4_MABX_DW.Unit_Delay_38_DSTATE = L4_MABX_B.BrakingPID_Y_k;
22736 L4_MABX_DW.Unit_Delay_39_DSTATE = 0.0;
22737 L4_MABX_DW.Unit_Delay_4_DSTATE = L4_MABX_B.Product_d;
22738 L4_MABX_DW.Unit_Delay_40_DSTATE = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
22739 L4_MABX_DW.Unit_Delay_41_DSTATE = L4_MABX_B.Vehicle_speed_target_n;
22740 L4_MABX_DW.Unit_Delay_42_DSTATE = L4_MABX_B.VSPD_HYST_KPH_APV_f;
22741 L4_MABX_DW.Unit_Delay_43_DSTATE = L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b;
22742 L4_MABX_DW.Unit_Delay_44_DSTATE = L4_MABX_B.ACCEL_LIM_MS2_APV_b;
22743 L4_MABX_DW.Unit_Delay_46_DSTATE = AutonomousOutputEnabled;
22744 L4_MABX_DW.Unit_Delay_5_DSTATE = L4_MABX_B.Switch2_i;
22745 L4_MABX_DW.Unit_Delay_6_DSTATE = L4_MABX_B.Conversion;
22746 L4_MABX_DW.Unit_Delay_7_DSTATE = L4_MABX_B.Add2;
22747 L4_MABX_DW.Unit_Delay_8_DSTATE = L4_MABX_P.zero_Value;
22748 L4_MABX_DW.Unit_Delay_83_DSTATE = Pedal_pwm_position;
22749 L4_MABX_DW.Unit_Delay_84_DSTATE = L4_MABX_B.IgnitionKeySwitch_voltage;
22750 L4_MABX_DW.Unit_Delay_85_DSTATE = L4_MABX_B.SFunction1_o8_o;
22751 L4_MABX_DW.Unit_Delay_86_DSTATE = L4_MABX_B.SFunction1_o2_mkm;
22752 L4_MABX_DW.Unit_Delay_87_DSTATE = L4_MABX_B.SFunction1_o7_l0;
22753 L4_MABX_DW.Unit_Delay_88_DSTATE = L4_MABX_B.SFunction1_o1_m1;
22754 L4_MABX_DW.Unit_Delay_89_DSTATE = L4_MABX_B.SFunction1_o1_fb;
22755 L4_MABX_DW.Unit_Delay_9_DSTATE = L4_MABX_B.Add1_h;
22756 L4_MABX_DW.Unit_Delay_90_DSTATE = L4_MABX_B.SFunction1_o2_fs;
22757 L4_MABX_DW.Unit_Delay_91_DSTATE = L4_MABX_B.SFunction1_o4_edl;
22758 L4_MABX_DW.Unit_Delay_92_DSTATE = L4_MABX_B.SPN524_TransSelectedGear;
22759 L4_MABX_DW.Unit_Delay_93_DSTATE = L4_MABX_B.SPN523_TransCurrentGear;
22760 L4_MABX_DW.Unit_Delay_94_DSTATE = L4_MABX_B.SPN526_TransActualGearRatio;
22761 L4_MABX_DW.Unit_Delay_95_DSTATE = L4_MABX_B.SFunction1_o4_kr;
22762 L4_MABX_DW.Unit_Delay_96_DSTATE = L4_MABX_B.SFunction1_o2_mk;
22763 L4_MABX_DW.Unit_Delay_97_DSTATE = L4_MABX_B.SFunction1_o5_j3;
22764 L4_MABX_DW.Unit_Delay_98_DSTATE = L4_MABX_B.SFunction1_o3_gns;
22765 L4_MABX_DW.Unit_Delay_99_DSTATE = L4_MABX_B.SPN514_NominalFrictionPercentTo;
22766
22767 /* Update for UnitDelay: '<S644>/Unit_Delay2' */
22768 L4_MABX_DW.Unit_Delay2_DSTATE_f = L4_MABX_B.LogicalOperator2_h;
22769
22770 /* Update for UnitDelay: '<S644>/Unit_Delay1' incorporates:
22771 * Constant: '<S644>/Constant1'
22772 */
22773 L4_MABX_DW.Unit_Delay1_DSTATE_g = L4_MABX_P.Constant1_Value_jy;
22774
22775 /* Update for UnitDelay: '<S651>/Unit_Delay' */
22776 L4_MABX_DW.Unit_Delay_DSTATE_fu = L4_MABX_B.LogicalOperator1_l;
22777
22778 /* Update for UnitDelay: '<S740>/Delay Input1' */
22779 L4_MABX_DW.DelayInput1_DSTATE_k = L4_MABX_B.Compare_pe;
22780
22781 /* Update for UnitDelay: '<S741>/Unit Delay1' */
22782 L4_MABX_DW.UnitDelay1_DSTATE = L4_MABX_B.Switch;
22783
22784 /* Update for UnitDelay: '<S736>/Unit Delay' */
22785 L4_MABX_DW.UnitDelay_DSTATE_jd = L4_MABX_B.AND_c;
22786
22787 /* Update for UnitDelay: '<S739>/Delay Input1' */
22788 L4_MABX_DW.DelayInput1_DSTATE_nn = L4_MABX_B.Compare_oc;
22789
22790 /* Update for UnitDelay: '<S741>/Unit Delay' */
22791 L4_MABX_DW.UnitDelay_DSTATE_pw = L4_MABX_B.AND_h;
22792
22793 /* Update for UnitDelay: '<S742>/Unit Delay1' */
22794 L4_MABX_DW.UnitDelay1_DSTATE_p = L4_MABX_B.Switch_o;
22795
22796 /* Update for UnitDelay: '<S742>/Unit Delay' */
22797 L4_MABX_DW.UnitDelay_DSTATE_i = L4_MABX_B.AND_c;
22798
22799 /* Update for UnitDelay: '<S10>/Unit_Delay' incorporates:
22800 * Constant: '<S10>/Constant'
22801 */
22802 L4_MABX_DW.Unit_Delay_DSTATE_do = L4_MABX_P.Constant_Value_g5;
22803
22804 /* Update absolute time */
22805 /* The "clockTick0" counts the number of times the code of this task has
22806 * been executed. The absolute time is the multiplication of "clockTick0"
22807 * and "Timing.stepSize0". Size of "clockTick0" ensures timer will not
22808 * overflow during the application lifespan selected.
22809 * Timer of this task consists of two 32 bit unsigned integers.
22810 * The two integers represent the low bits Timing.clockTick0 and the high bits
22811 * Timing.clockTickH0. When the low bit overflows to 0, the high bits increment.
22812 */
22813 if (!(++L4_MABX_M->Timing.clockTick0)) {
22814 ++L4_MABX_M->Timing.clockTickH0;
22815 }
22816
22817 L4_MABX_M->Timing.t[0] = L4_MABX_M->Timing.clockTick0 *
22818 L4_MABX_M->Timing.stepSize0 + L4_MABX_M->Timing.clockTickH0 *
22819 L4_MABX_M->Timing.stepSize0 * 4294967296.0;
22820}
22821
22822/* Model output function for TID1 */
22823void L4_MABX_output1(void) /* Sample time: [0.02s, 0.0s] */
22824{
22825 int_T tid = 1;
22826 int32_T i;
22827 uint32_T q0;
22828 uint32_T qY;
22829 uint8_T tmp;
22830 real_T u0;
22831 real_T u1;
22832 real_T u2;
22833
22834 /* Outputs for Atomic SubSystem: '<S834>/CAN_TX_20ms' */
22835
22836 /* Switch: '<S1000>/Switch1' incorporates:
22837 * Constant: '<S1000>/Constant4'
22838 */
22839 if (L4_MABX_B.AutonomousOutputEnabled_g) {
22840 /* Product: '<S1000>/Divide1' incorporates:
22841 * Constant: '<S1000>/Constant2'
22842 */
22843 L4_MABX_B.XBRExternalAccelDemand_f = L4_MABX_B.BrakingPID_Y_g *
22844 L4_MABX_P.Constant2_Value_m4;
22845 L4_MABX_B.XBRExternalAccelDemand = L4_MABX_B.XBRExternalAccelDemand_f;
22846 } else {
22847 L4_MABX_B.XBRExternalAccelDemand = L4_MABX_P.Constant4_Value_h;
22848 }
22849
22850 /* End of Switch: '<S1000>/Switch1' */
22851
22852 /* MultiPortSwitch: '<S1000>/Multiport Switch' incorporates:
22853 * Constant: '<S1000>/Constant10'
22854 * Constant: '<S1000>/Constant7'
22855 * Constant: '<S1000>/Constant8'
22856 * Constant: '<S1000>/Constant9'
22857 */
22858 switch ((int32_T)L4_MABX_B.BrakingControlActive_m) {
22859 case 0:
22860 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant10_Value_b;
22861 break;
22862
22863 case 1:
22864 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant7_Value_m;
22865 break;
22866
22867 case 2:
22868 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant8_Value_i;
22869 break;
22870
22871 default:
22872 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant9_Value_i;
22873 break;
22874 }
22875
22876 /* End of MultiPortSwitch: '<S1000>/Multiport Switch' */
22877
22878 /* Outputs for Atomic SubSystem: '<S1000>/If_Then_Else' */
22879
22880 /* Constant: '<S1000>/XBRValueOverride' incorporates:
22881 * Constant: '<S1000>/XBRControlMode'
22882 * Constant: '<S1000>/XBRControlModeOVR'
22883 * Constant: '<S1000>/XBREnduranceBrakeIntegrationMode'
22884 * Constant: '<S1000>/XBREnduranceBrakeIntegrationModeOVR'
22885 * Constant: '<S1000>/XBRExternalAccelDemandOVR'
22886 * Constant: '<S1000>/XBRPassThroughActiveOVR'
22887 * Constant: '<S1000>/XBRPassThroughEnabled'
22888 * Constant: '<S1000>/XBRPassThroughEnabledOVR'
22889 * Constant: '<S1000>/XBRPriority'
22890 * Constant: '<S1000>/XBRPriorityOVR'
22891 * Constant: '<S1000>/XBRUrgency'
22892 * Constant: '<S1000>/XBRUrgencyOVR'
22893 */
22894 L4_MABX_If_Then_Else_n(L4_MABX_P.XBRValueOverride_Value,
22895 L4_MABX_P.XBRExternalAccelDemandOVR_Value,
22896 L4_MABX_P.XBREnduranceBrakeIntegrationMod, L4_MABX_P.XBRPriorityOVR_Value,
22897 L4_MABX_P.XBRControlModeOVR_Value, L4_MABX_P.XBRPassThroughActiveOVR_Value,
22898 L4_MABX_P.XBRUrgencyOVR_Value, L4_MABX_P.XBRPassThroughEnabledOVR_Value,
22899 L4_MABX_B.XBRExternalAccelDemand, L4_MABX_P.XBREnduranceBrakeIntegrationM_o,
22900 L4_MABX_P.XBRPriority_Value, L4_MABX_P.XBRControlMode_Value,
22901 L4_MABX_B.XBRPassThroughActive, L4_MABX_P.XBRUrgency_Value,
22902 L4_MABX_P.XBRPassThroughEnabled_Value, &L4_MABX_B.If_Then_Else_nq);
22903
22904 /* End of Outputs for SubSystem: '<S1000>/If_Then_Else' */
22905
22906 /* DataTypeConversion: '<S1003>/Data Type Conversion1' */
22907 L4_MABX_B.DataTypeConversion1_i = (real_T)
22908 L4_MABX_B.If_Then_Else_nq.XBREnduranceBrakeIntegrationMod;
22909
22910 /* DataTypeConversion: '<S1003>/Data Type Conversion2' */
22911 L4_MABX_B.DataTypeConversion2_px = (real_T)
22912 L4_MABX_B.If_Then_Else_nq.XBRPriority;
22913
22914 /* DataTypeConversion: '<S1003>/Data Type Conversion3' */
22915 L4_MABX_B.DataTypeConversion3_o = (real_T)
22916 L4_MABX_B.If_Then_Else_nq.XBRControlMode;
22917
22918 /* DataTypeConversion: '<S1003>/Data Type Conversion4' */
22919 L4_MABX_B.DataTypeConversion4_l =
22920 L4_MABX_B.If_Then_Else_nq.XBRExternalAccelDemand;
22921
22922 /* DataTypeConversion: '<S1003>/Data Type Conversion5' */
22923 L4_MABX_B.DataTypeConversion5_o = (real_T)
22924 L4_MABX_B.If_Then_Else_nq.XBRPassThroughActive;
22925
22926 /* DataTypeConversion: '<S1003>/Data Type Conversion6' */
22927 L4_MABX_B.DataTypeConversion6_m = L4_MABX_B.If_Then_Else_nq.XBRUrgency;
22928
22929 /* DataTypeConversion: '<S1003>/Data Type Conversion7' */
22930 L4_MABX_B.DataTypeConversion7_f =
22931 L4_MABX_B.If_Then_Else_nq.XBRPassThroughEnabled;
22932
22933 /* UnitDelay: '<S996>/Unit_Delay' */
22934 L4_MABX_B.Unit_Delay_ly = L4_MABX_DW.Unit_Delay_DSTATE_ly;
22935
22936 /* Logic: '<S996>/Logical Operator8' */
22937 L4_MABX_B.LogicalOperator8_a = !L4_MABX_B.TmpRTBAtLogicalOperator8Inport1;
22938
22939 /* Logic: '<S996>/Logical Operator7' */
22940 L4_MABX_B.LogicalOperator7_j = (L4_MABX_B.Unit_Delay_ly &&
22941 L4_MABX_B.LogicalOperator8_a);
22942
22943 /* Logic: '<S996>/Logical Operator1' */
22944 L4_MABX_B.LogicalOperator1_d = (L4_MABX_B.LogicalOperator7_j ||
22945 L4_MABX_B.TmpRTBAtLogicalOperator1Inport2);
22946
22947 /* DataTypeConversion: '<S996>/Data Type Conversion' incorporates:
22948 * Constant: '<S840>/CANT_PROPB_XBR_B3_CHANNEL_APV'
22949 */
22950 u0 = L4_MABX_P.CANT_PROPB_XBR_B3_CHANNEL_APV_V;
22951 if (u0 < 256.0) {
22952 if (u0 >= 0.0) {
22953 tmp = (uint8_T)u0;
22954 } else {
22955 tmp = 0U;
22956 }
22957 } else {
22958 tmp = MAX_uint8_T;
22959 }
22960
22961 L4_MABX_B.DataTypeConversion_fs = tmp;
22962
22963 /* End of DataTypeConversion: '<S996>/Data Type Conversion' */
22964
22965 /* S-Function (sfix_bitop): '<S1001>/Operator' */
22966 L4_MABX_B.Operator_op = (uint8_T)(L4_MABX_B.DataTypeConversion_fs &
22967 L4_MABX_P.Operator_BitMask_pz);
22968
22969 /* DataTypeConversion: '<S1001>/DataType' */
22970 L4_MABX_B.DataType_dp = L4_MABX_B.Operator_op;
22971
22972 /* DataTypeConversion: '<S996>/Data Type Conversion2' */
22973 L4_MABX_B.DataTypeConversion2_ld = (L4_MABX_B.DataType_dp != 0);
22974
22975 /* Logic: '<S996>/Logical Operator' */
22976 L4_MABX_B.LogicalOperator_p = (L4_MABX_B.LogicalOperator1_d &&
22977 L4_MABX_B.DataTypeConversion2_ld);
22978
22979 /* Outputs for Enabled SubSystem: '<S1003>/PropB_XBR_B3' incorporates:
22980 * EnablePort: '<S1004>/Enable'
22981 */
22982 if (L4_MABX_B.LogicalOperator_p) {
22983 /* S-Function (rti_commonblock): '<S1004>/S-Function1' */
22984 /* This comment workarounds a code generation problem */
22985
22986 /* dSPACE RTICAN TX Message Block: "PropB_XBR_B3" Id:218038707 */
22987 {
22988 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
22989
22990 Float32 delayTime = 0.0;
22991
22992 /* ... Read status and timestamp info (previous message) */
22993 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]);
22994
22995 /* Convert timestamp */
22996 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->processed) {
22997 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp =
22998 rtk_dsts_time_to_simtime_convert
22999 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp);
23000 }
23001
23002 /* Messages with timestamp zero have been received in pause/stop state
23003 and must not be handled.
23004 */
23005 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp > 0.0) {
23006 L4_MABX_B.SFunction1_o1_dy = (real_T)
23007 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->processed;
23008 L4_MABX_B.SFunction1_o2_o = (real_T)
23009 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp;
23010 L4_MABX_B.SFunction1_o3_oy = (real_T)
23011 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->deltatime;
23012 L4_MABX_B.SFunction1_o4_f = (real_T)
23013 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->delaytime;
23014 }
23015
23016 /* ... Encode Simulink signals of TX and RM blocks*/
23017 {
23018 rtican_Signal_t CAN_Sgn;
23019
23020 /* ...... "SPN2920_ExternalAccelerationDemand" (0|16, standard signal, unsigned int, little endian) */
23021 /* Add or substract 0.5 in order to round to nearest integer */
23022 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_l -
23023 ( -15.687 ) ) / 0.00048828125 + 0.5);
23024 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23025 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23026 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
23027
23028 /* ...... "SPN2915_XBREnduranceBrkIntegrationMode" (16|2, standard signal, unsigned int, little endian) */
23029 /* Add or substract 0.5 in order to round to nearest integer */
23030 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_i ) +
23031 0.5);
23032 CAN_Sgn.UnsignedSgn &= 0x00000003;
23033 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23034
23035 /* ...... "SPN2915_XBRPriority" (18|2, standard signal, unsigned int, little endian) */
23036 /* Add or substract 0.5 in order to round to nearest integer */
23037 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_px ) +
23038 0.5);
23039 CAN_Sgn.UnsignedSgn &= 0x00000003;
23040 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23041 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23042
23043 /* ...... "SPN2916_XBRControlMode" (20|2, standard signal, unsigned int, little endian) */
23044 /* Add or substract 0.5 in order to round to nearest integer */
23045 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_o ) +
23046 0.5);
23047 CAN_Sgn.UnsignedSgn &= 0x00000003;
23048 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23049 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23050
23051 /* ...... "XBRPassThroughActive" (22|2, standard signal, unsigned int, little endian) */
23052 /* Add or substract 0.5 in order to round to nearest integer */
23053 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_o ) +
23054 0.5);
23055 CAN_Sgn.UnsignedSgn &= 0x00000003;
23056 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23057 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23058
23059 /* ...... "SPN4099_XBRUrgency" (24|8, standard signal, unsigned int, little endian) */
23060 /* Add or substract 0.5 in order to round to nearest integer */
23061 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_m - ( 0 )
23062 ) / 0.4 + 0.5);
23063 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23064 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23065
23066 /* ...... "XBRPassThroughEnable" (54|2, standard signal, unsigned int, little endian) */
23067 /* Add or substract 0.5 in order to round to nearest integer */
23068 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_f ) +
23069 0.5);
23070 CAN_Sgn.UnsignedSgn &= 0x00000003;
23071 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23072 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23073 }
23074
23075 /* mask unused bits with '1' */
23076 CAN_Msg[4] |= 0xFF;
23077 CAN_Msg[5] |= 0xFF;
23078 CAN_Msg[6] |= 0x3F;
23079 CAN_Msg[7] |= 0xFF;
23080
23081 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23082 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3], 8,
23083 &(CAN_Msg[0]), delayTime);
23084 }
23085 }
23086
23087 /* End of Outputs for SubSystem: '<S1003>/PropB_XBR_B3' */
23088
23089 /* RelationalOperator: '<S1002>/Compare' incorporates:
23090 * Constant: '<S1002>/Constant'
23091 */
23092 L4_MABX_B.Compare_c4 = (L4_MABX_B.If_Then_Else_nq.XBRPassThroughActive ==
23093 L4_MABX_P.CompareToConstant_const_j);
23094
23095 /* Saturate: '<S999>/Saturation' incorporates:
23096 * Constant: '<S999>/2C2_OR_VALUE_APV'
23097 */
23098 u0 = L4_MABX_P.uC2_OR_VALUE_APV_Value;
23099 u1 = L4_MABX_P.Saturation_LowerSat_d;
23100 u2 = L4_MABX_P.Saturation_UpperSat_i;
23101 if (u0 > u2) {
23102 L4_MABX_B.Saturation_l = u2;
23103 } else if (u0 < u1) {
23104 L4_MABX_B.Saturation_l = u1;
23105 } else {
23106 L4_MABX_B.Saturation_l = u0;
23107 }
23108
23109 /* End of Saturate: '<S999>/Saturation' */
23110
23111 /* Outputs for Atomic SubSystem: '<S999>/If_Then_Else1' */
23112
23113 /* Constant: '<S999>/F_2C2_OR_APV' */
23114 L4_MABX_If_Then_Else_g(L4_MABX_P.F_2C2_OR_APV_Value, L4_MABX_B.Saturation_l,
23115 L4_MABX_B.BrakingPID_Y_gl, &L4_MABX_B.If_Then_Else1_ib);
23116
23117 /* End of Outputs for SubSystem: '<S999>/If_Then_Else1' */
23118
23119 /* Gain: '<S999>/Gain' */
23120 L4_MABX_B.Gain_eg = L4_MABX_P.Gain_Gain_e * L4_MABX_B.If_Then_Else1_ib.Switch;
23121
23122 /* Gain: '<S1016>/Gain' */
23123 L4_MABX_B.Gain_bs = L4_MABX_P.Gain_Gain_k * L4_MABX_B.Gain_eg;
23124
23125 /* DataTypeConversion: '<S1016>/Data Type Conversion2' */
23126 u0 = floor(L4_MABX_B.Gain_bs);
23127 if (rtIsNaN(u0) || rtIsInf(u0)) {
23128 u0 = 0.0;
23129 } else {
23130 u0 = fmod(u0, 256.0);
23131 }
23132
23133 L4_MABX_B.DataTypeConversion2_oa = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
23134 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
23135
23136 /* End of DataTypeConversion: '<S1016>/Data Type Conversion2' */
23137
23138 /* DataTypeConversion: '<S1016>/Data Type Conversion3' incorporates:
23139 * Constant: '<S999>/BrkControlMode_Active'
23140 */
23141 u0 = floor(L4_MABX_P.BrkControlMode_Active_Value);
23142 if (rtIsNaN(u0) || rtIsInf(u0)) {
23143 u0 = 0.0;
23144 } else {
23145 u0 = fmod(u0, 256.0);
23146 }
23147
23148 L4_MABX_B.DataTypeConversion3_k4 = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
23149 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
23150
23151 /* End of DataTypeConversion: '<S1016>/Data Type Conversion3' */
23152
23153 /* S-Function (sfix_bitop): '<S1016>/Bitwise Operator14' */
23154 L4_MABX_B.BitwiseOperator14 = (uint8_T)(L4_MABX_B.DataTypeConversion3_k4 &
23155 L4_MABX_P.BitwiseOperator14_BitMask);
23156
23157 /* DataTypeConversion: '<S1016>/Data Type Conversion4' incorporates:
23158 * Constant: '<S999>/BrkControlPriority'
23159 */
23160 u0 = floor(L4_MABX_P.BrkControlPriority_Value);
23161 if (rtIsNaN(u0) || rtIsInf(u0)) {
23162 u0 = 0.0;
23163 } else {
23164 u0 = fmod(u0, 256.0);
23165 }
23166
23167 L4_MABX_B.DataTypeConversion4_b5 = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
23168 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
23169
23170 /* End of DataTypeConversion: '<S1016>/Data Type Conversion4' */
23171
23172 /* S-Function (sfix_bitop): '<S1016>/Bitwise Operator1' */
23173 L4_MABX_B.BitwiseOperator1 = (uint8_T)(L4_MABX_B.DataTypeConversion4_b5 &
23174 L4_MABX_P.BitwiseOperator1_BitMask);
23175
23176 /* ArithShift: '<S1016>/Shift_Arithmetic ' */
23177 L4_MABX_B.Shift_Arithmetic_au = (uint8_T)(L4_MABX_B.BitwiseOperator1 << 2);
23178
23179 /* DataTypeConversion: '<S1016>/Data Type Conversion12' */
23180 L4_MABX_B.DataTypeConversion12_b = L4_MABX_B.Shift_Arithmetic_au;
23181
23182 /* DataTypeConversion: '<S1016>/Data Type Conversion6' incorporates:
23183 * Constant: '<S1016>/Constant2'
23184 */
23185 L4_MABX_B.DataTypeConversion6_g = L4_MABX_P.Constant2_Value_han;
23186
23187 /* S-Function (sfix_bitop): '<S1016>/Bitwise Operator17' */
23188 L4_MABX_B.BitwiseOperator17_c = (uint8_T)(L4_MABX_B.BitwiseOperator14 |
23189 L4_MABX_B.DataTypeConversion12_b | L4_MABX_B.DataTypeConversion6_g);
23190
23191 /* Gain: '<S1016>/Gain1' incorporates:
23192 * Constant: '<S999>/BrkControl_RearAxlePressureProportioning'
23193 */
23194 L4_MABX_B.Gain1_d = L4_MABX_P.Gain1_Gain_b *
23195 L4_MABX_P.BrkControl_RearAxlePressureProp;
23196
23197 /* DataTypeConversion: '<S1016>/Data Type Conversion11' */
23198 u0 = floor(L4_MABX_B.Gain1_d);
23199 if (rtIsNaN(u0) || rtIsInf(u0)) {
23200 u0 = 0.0;
23201 } else {
23202 u0 = fmod(u0, 256.0);
23203 }
23204
23205 L4_MABX_B.DataTypeConversion11_j = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
23206 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
23207
23208 /* End of DataTypeConversion: '<S1016>/Data Type Conversion11' */
23209
23210 /* Reshape: '<S1019>/Reshape' incorporates:
23211 * Constant: '<S1019>/Constant'
23212 */
23213 for (i = 0; i < 16; i++) {
23214 L4_MABX_B.Reshape_p[i] = L4_MABX_P.Repeating_Sequence_Stair_Out_ee[i];
23215 }
23216
23217 /* End of Reshape: '<S1019>/Reshape' */
23218
23219 /* UnitDelay: '<S1019>/Unit_Delay' */
23220 L4_MABX_B.Unit_Delay_jr = L4_MABX_DW.Unit_Delay_DSTATE_a;
23221
23222 /* UnitDelay: '<S1020>/Unit Delay' */
23223 L4_MABX_B.UnitDelay_ot = L4_MABX_DW.UnitDelay_DSTATE_j;
23224
23225 /* Switch: '<S1023>/Switch1' incorporates:
23226 * Constant: '<S1020>/E'
23227 * Constant: '<S1020>/IV'
23228 * Switch: '<S1022>/Switch1'
23229 */
23230 if (L4_MABX_B.Unit_Delay_jr) {
23231 L4_MABX_B.Switch1_nt = L4_MABX_P.IV_Value_eo;
23232 } else {
23233 if (L4_MABX_P.E_Value_jh) {
23234 /* Sum: '<S1020>/Subtract' incorporates:
23235 * Constant: '<S1020>/Constant'
23236 * Switch: '<S1022>/Switch1'
23237 */
23238 q0 = L4_MABX_P.Constant_Value_jx;
23239 qY = q0 + L4_MABX_B.UnitDelay_ot;
23240 if (qY < q0) {
23241 qY = MAX_uint32_T;
23242 }
23243
23244 L4_MABX_B.Subtract_ijj = qY;
23245
23246 /* End of Sum: '<S1020>/Subtract' */
23247
23248 /* Switch: '<S1022>/Switch1' */
23249 L4_MABX_B.Switch1_i = L4_MABX_B.Subtract_ijj;
23250 } else {
23251 /* Switch: '<S1022>/Switch1' */
23252 L4_MABX_B.Switch1_i = L4_MABX_B.UnitDelay_ot;
23253 }
23254
23255 L4_MABX_B.Switch1_nt = L4_MABX_B.Switch1_i;
23256 }
23257
23258 /* End of Switch: '<S1023>/Switch1' */
23259
23260 /* Selector: '<S1019>/Selector' */
23261 L4_MABX_B.Selector_k = L4_MABX_B.Reshape_p[(int32_T)L4_MABX_B.Switch1_nt - 1];
23262
23263 /* DataTypeConversion: '<S1016>/Data Type Conversion10' */
23264 L4_MABX_B.DataTypeConversion10_c = L4_MABX_B.Selector_k;
23265
23266 /* S-Function (sfix_bitop): '<S1016>/Bitwise Operator6' */
23267 L4_MABX_B.BitwiseOperator6 = (uint8_T)(L4_MABX_B.DataTypeConversion10_c &
23268 L4_MABX_P.BitwiseOperator6_BitMask);
23269
23270 /* DataTypeConversion: '<S1015>/Data Type Conversion6' incorporates:
23271 * Constant: '<S1015>/Priority'
23272 */
23273 L4_MABX_B.DataTypeConversion6_i = L4_MABX_P.Priority_Value_m;
23274
23275 /* ArithShift: '<S1015>/Shift_Arithmetic 5' */
23276 L4_MABX_B.Shift_Arithmetic5 = L4_MABX_B.DataTypeConversion6_i << 26;
23277
23278 /* DataTypeConversion: '<S1015>/Data Type Conversion7' incorporates:
23279 * Constant: '<S1015>/ExtendedDataPage'
23280 */
23281 L4_MABX_B.DataTypeConversion7_b = L4_MABX_P.ExtendedDataPage_Value_p;
23282
23283 /* ArithShift: '<S1015>/Shift_Arithmetic 6' */
23284 L4_MABX_B.Shift_Arithmetic6 = L4_MABX_B.DataTypeConversion7_b << 25;
23285
23286 /* DataTypeConversion: '<S1015>/Data Type Conversion8' incorporates:
23287 * Constant: '<S1015>/DataPage'
23288 */
23289 L4_MABX_B.DataTypeConversion8_j = L4_MABX_P.DataPage_Value_h;
23290
23291 /* ArithShift: '<S1015>/Shift_Arithmetic 7' */
23292 L4_MABX_B.Shift_Arithmetic7 = L4_MABX_B.DataTypeConversion8_j << 24;
23293
23294 /* DataTypeConversion: '<S1015>/Data Type Conversion9' incorporates:
23295 * Constant: '<S1015>/PDUFormat'
23296 */
23297 L4_MABX_B.DataTypeConversion9_k = L4_MABX_P.PDUFormat_Value_c;
23298
23299 /* ArithShift: '<S1015>/Shift_Arithmetic 8' */
23300 L4_MABX_B.Shift_Arithmetic8 = L4_MABX_B.DataTypeConversion9_k << 16;
23301
23302 /* DataTypeConversion: '<S1015>/Data Type Conversion10' incorporates:
23303 * Constant: '<S1015>/PDUSpecific'
23304 */
23305 L4_MABX_B.DataTypeConversion10_a = L4_MABX_P.PDUSpecific_Value_b;
23306
23307 /* ArithShift: '<S1015>/Shift_Arithmetic 9' */
23308 L4_MABX_B.Shift_Arithmetic9 = L4_MABX_B.DataTypeConversion10_a << 8;
23309
23310 /* DataTypeConversion: '<S1015>/Data Type Conversion11' incorporates:
23311 * Constant: '<S1015>/SourceAddress'
23312 */
23313 L4_MABX_B.DataTypeConversion11_n = L4_MABX_P.SourceAddress_Value_a;
23314
23315 /* S-Function (sfix_bitop): '<S1015>/Bitwise Operator17' */
23316 L4_MABX_B.BitwiseOperator17 = L4_MABX_B.Shift_Arithmetic5 |
23317 L4_MABX_B.Shift_Arithmetic6 | L4_MABX_B.Shift_Arithmetic7 |
23318 L4_MABX_B.Shift_Arithmetic8 | L4_MABX_B.Shift_Arithmetic9 |
23319 L4_MABX_B.DataTypeConversion11_n;
23320
23321 /* DataTypeConversion: '<S1016>/Data Type Conversion7' */
23322 L4_MABX_B.DataTypeConversion7_p = L4_MABX_B.BitwiseOperator17;
23323
23324 /* S-Function (sfix_bitop): '<S1016>/Bitwise Operator2' */
23325 L4_MABX_B.BitwiseOperator2 = L4_MABX_B.DataTypeConversion7_p &
23326 L4_MABX_P.BitwiseOperator2_BitMask;
23327
23328 /* S-Function (sfix_bitop): '<S1016>/Bitwise Operator3' */
23329 L4_MABX_B.BitwiseOperator3 = L4_MABX_B.DataTypeConversion7_p &
23330 L4_MABX_P.BitwiseOperator3_BitMask;
23331
23332 /* ArithShift: '<S1016>/Shift_Arithmetic 3' */
23333 L4_MABX_B.Shift_Arithmetic3_ko = L4_MABX_B.BitwiseOperator3 >> 8;
23334
23335 /* DataTypeConversion: '<S1016>/Data Type Conversion5' */
23336 L4_MABX_B.DataTypeConversion5_jj = (uint8_T)L4_MABX_B.Shift_Arithmetic3_ko;
23337
23338 /* S-Function (sfix_bitop): '<S1016>/Bitwise Operator4' */
23339 L4_MABX_B.BitwiseOperator4 = L4_MABX_B.DataTypeConversion7_p &
23340 L4_MABX_P.BitwiseOperator4_BitMask;
23341
23342 /* ArithShift: '<S1016>/Shift_Arithmetic 4' */
23343 L4_MABX_B.Shift_Arithmetic4_d = L4_MABX_B.BitwiseOperator4 >> 16;
23344
23345 /* DataTypeConversion: '<S1016>/Data Type Conversion8' */
23346 L4_MABX_B.DataTypeConversion8_b = (uint8_T)L4_MABX_B.Shift_Arithmetic4_d;
23347
23348 /* S-Function (sfix_bitop): '<S1016>/Bitwise Operator5' */
23349 L4_MABX_B.BitwiseOperator5 = L4_MABX_B.DataTypeConversion7_p &
23350 L4_MABX_P.BitwiseOperator5_BitMask;
23351
23352 /* ArithShift: '<S1016>/Shift_Arithmetic 5' */
23353 L4_MABX_B.Shift_Arithmetic5_d = L4_MABX_B.BitwiseOperator5 >> 24;
23354
23355 /* DataTypeConversion: '<S1016>/Data Type Conversion9' */
23356 L4_MABX_B.DataTypeConversion9_a = (uint8_T)L4_MABX_B.Shift_Arithmetic5_d;
23357
23358 /* Sum: '<S1016>/Add2' incorporates:
23359 * Constant: '<S1016>/Constant'
23360 * Constant: '<S1016>/Constant1'
23361 * Constant: '<S1016>/Constant3'
23362 * Constant: '<S1016>/Constant4'
23363 */
23364 L4_MABX_B.Add2_f = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
23365 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
23366 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
23367 (uint8_T)((uint32_T)L4_MABX_B.DataTypeConversion2_oa +
23368 L4_MABX_B.BitwiseOperator17_c) + L4_MABX_B.DataTypeConversion11_j)
23369 + L4_MABX_P.Constant3_Value_ci) + L4_MABX_P.Constant4_Value_k) +
23370 L4_MABX_P.Constant_Value_e0v) + L4_MABX_P.Constant1_Value_fxl) + (uint8_T)
23371 L4_MABX_B.BitwiseOperator2) + L4_MABX_B.DataTypeConversion5_jj) +
23372 L4_MABX_B.DataTypeConversion8_b) + L4_MABX_B.DataTypeConversion9_a) +
23373 L4_MABX_B.BitwiseOperator6);
23374
23375 /* ArithShift: '<S1016>/Shift_Arithmetic 6' */
23376 L4_MABX_B.Shift_Arithmetic6_e = (uint8_T)((uint32_T)L4_MABX_B.Add2_f >> 4);
23377
23378 /* Sum: '<S1016>/Add3' */
23379 L4_MABX_B.Add3_c = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic6_e +
23380 L4_MABX_B.Add2_f);
23381
23382 /* S-Function (sfix_bitop): '<S1016>/Bitwise Operator8' */
23383 L4_MABX_B.BitwiseOperator8 = (uint8_T)(L4_MABX_B.Add3_c &
23384 L4_MABX_P.BitwiseOperator8_BitMask);
23385
23386 /* ArithShift: '<S1016>/Shift_Arithmetic 7' */
23387 L4_MABX_B.Shift_Arithmetic7_g = (uint8_T)(L4_MABX_B.BitwiseOperator8 << 4);
23388
23389 /* S-Function (sfix_bitop): '<S1016>/Bitwise Operator7' */
23390 L4_MABX_B.BitwiseOperator7 = (uint8_T)(L4_MABX_B.BitwiseOperator6 |
23391 L4_MABX_B.Shift_Arithmetic7_g);
23392
23393 /* DataTypeConversion: '<S997>/Data Type Conversion1' incorporates:
23394 * Constant: '<S1016>/Constant'
23395 * Constant: '<S1016>/Constant1'
23396 * Constant: '<S1016>/Constant3'
23397 * Constant: '<S1016>/Constant4'
23398 */
23399 L4_MABX_B.DataTypeConversion1_n[0] = L4_MABX_B.DataTypeConversion2_oa;
23400 L4_MABX_B.DataTypeConversion1_n[1] = L4_MABX_B.BitwiseOperator17_c;
23401 L4_MABX_B.DataTypeConversion1_n[2] = L4_MABX_B.DataTypeConversion11_j;
23402 L4_MABX_B.DataTypeConversion1_n[3] = L4_MABX_P.Constant3_Value_ci;
23403 L4_MABX_B.DataTypeConversion1_n[4] = L4_MABX_P.Constant4_Value_k;
23404 L4_MABX_B.DataTypeConversion1_n[5] = L4_MABX_P.Constant_Value_e0v;
23405 L4_MABX_B.DataTypeConversion1_n[6] = L4_MABX_P.Constant1_Value_fxl;
23406 L4_MABX_B.DataTypeConversion1_n[7] = L4_MABX_B.BitwiseOperator7;
23407
23408 /* Outputs for Enabled SubSystem: '<S1005>/PropB_Bendix_2C2_XPR' incorporates:
23409 * EnablePort: '<S1006>/Enable'
23410 */
23411 /* Constant: '<S999>/CPV' */
23412 if (L4_MABX_P.CPV_Value_lr) {
23413 /* S-Function (rti_commonblock): '<S1006>/S-Function1' */
23414 /* This comment workarounds a code generation problem */
23415
23416 /* dSPACE RTICAN TX Message Block: "PropB_Bendix_2C2_XPR" Id:218060389 */
23417 {
23418 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23419
23420 Float32 delayTime = 0.0;
23421
23422 /* ... Read status and timestamp info (previous message) */
23423 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]);
23424
23425 /* Convert timestamp */
23426 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->processed) {
23427 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp =
23428 rtk_dsts_time_to_simtime_convert
23429 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp);
23430 }
23431
23432 /* Messages with timestamp zero have been received in pause/stop state
23433 and must not be handled.
23434 */
23435 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp > 0.0) {
23436 L4_MABX_B.SFunction1_o1_m = (real_T)
23437 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->processed;
23438 L4_MABX_B.SFunction1_o2_m = (real_T)
23439 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp;
23440 L4_MABX_B.SFunction1_o3_p = (real_T)
23441 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->deltatime;
23442 L4_MABX_B.SFunction1_o4_c = (real_T)
23443 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->delaytime;
23444 }
23445
23446 /* ... Encode Simulink signals of TX and RM blocks*/
23447 {
23448 rtican_Signal_t CAN_Sgn;
23449
23450 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
23451 /* Add or substract 0.5 in order to round to nearest integer */
23452 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_n[0] ) +
23453 0.5);
23454 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23455 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23456
23457 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
23458 /* Add or substract 0.5 in order to round to nearest integer */
23459 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_n[1] ) +
23460 0.5);
23461 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23462 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
23463
23464 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
23465 /* Add or substract 0.5 in order to round to nearest integer */
23466 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_n[2] ) +
23467 0.5);
23468 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23469 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23470
23471 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
23472 /* Add or substract 0.5 in order to round to nearest integer */
23473 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_n[3] ) +
23474 0.5);
23475 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23476 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23477
23478 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
23479 /* Add or substract 0.5 in order to round to nearest integer */
23480 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_n[4] ) +
23481 0.5);
23482 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23483 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23484
23485 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
23486 /* Add or substract 0.5 in order to round to nearest integer */
23487 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_n[5] ) +
23488 0.5);
23489 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23490 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
23491
23492 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
23493 /* Add or substract 0.5 in order to round to nearest integer */
23494 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_n[6] ) +
23495 0.5);
23496 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23497 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23498
23499 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
23500 /* Add or substract 0.5 in order to round to nearest integer */
23501 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_n[7] ) +
23502 0.5);
23503 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23504 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23505 }
23506
23507 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23508 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665], 8,
23509 &(CAN_Msg[0]), delayTime);
23510 }
23511 }
23512
23513 /* End of Constant: '<S999>/CPV' */
23514 /* End of Outputs for SubSystem: '<S1005>/PropB_Bendix_2C2_XPR' */
23515
23516 /* DataTypeConversion: '<S1013>/Data Type Conversion' */
23517 L4_MABX_B.DataTypeConversion_p = L4_MABX_B.FrontAxleSpeed_o;
23518
23519 /* DataTypeConversion: '<S1013>/Data Type Conversion1' */
23520 L4_MABX_B.DataTypeConversion1_im = L4_MABX_B.SPN1807_SteeringWheelAngle_n;
23521
23522 /* DataTypeConversion: '<S1013>/Data Type Conversion2' */
23523 L4_MABX_B.DataTypeConversion2_nx = L4_MABX_B.SPN1808_YawRate_l;
23524
23525 /* DataTypeConversion: '<S1013>/Data Type Conversion3' */
23526 L4_MABX_B.DataTypeConversion3_p = L4_MABX_B.SPN1810_LongitudinalAccelerat_j;
23527
23528 /* DataTypeConversion: '<S998>/Data Type Conversion' incorporates:
23529 * Constant: '<S840>/CANT_STD_ODOMETRY_CHANNEL_APV'
23530 */
23531 L4_MABX_B.DataTypeConversion_le = (uint8_T)
23532 L4_MABX_P.CANT_STD_ODOMETRY_CHANNEL_APV_V;
23533
23534 /* S-Function (sfix_bitop): '<S1012>/Operator' */
23535 L4_MABX_B.Operator_ky = (uint8_T)(L4_MABX_B.DataTypeConversion_le &
23536 L4_MABX_P.Operator_BitMask_i0);
23537
23538 /* DataTypeConversion: '<S1012>/DataType' */
23539 L4_MABX_B.DataType = L4_MABX_B.Operator_ky;
23540
23541 /* ArithShift: '<S998>/Shift_Arithmetic 4' */
23542 L4_MABX_B.Shift_Arithmetic4 = ldexp(L4_MABX_B.DataType, (-5));
23543
23544 /* DataTypeConversion: '<S998>/Data Type Conversion7' */
23545 L4_MABX_B.DataTypeConversion7_m = (L4_MABX_B.Shift_Arithmetic4 != 0.0);
23546
23547 /* Outputs for Enabled SubSystem: '<S1013>/Std_OdometryData' incorporates:
23548 * EnablePort: '<S1014>/Enable'
23549 */
23550 if (L4_MABX_B.DataTypeConversion7_m) {
23551 /* S-Function (rti_commonblock): '<S1014>/S-Function1' */
23552 /* This comment workarounds a code generation problem */
23553
23554 /* dSPACE RTICAN TX Message Block: "Std_OdometryData" Id:10 */
23555 {
23556 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23557
23558 Float32 delayTime = 0.0;
23559
23560 /* ... Read status and timestamp info (previous message) */
23561 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]);
23562
23563 /* Convert timestamp */
23564 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->processed) {
23565 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp =
23566 rtk_dsts_time_to_simtime_convert
23567 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp);
23568 }
23569
23570 /* Messages with timestamp zero have been received in pause/stop state
23571 and must not be handled.
23572 */
23573 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp > 0.0) {
23574 L4_MABX_B.SFunction1_o1_kr = (real_T)
23575 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->processed;
23576 L4_MABX_B.SFunction1_o2_g = (real_T)
23577 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp;
23578 L4_MABX_B.SFunction1_o3_j = (real_T)
23579 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->deltatime;
23580 L4_MABX_B.SFunction1_o4_pf = (real_T)
23581 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->delaytime;
23582 }
23583
23584 /* ... Encode Simulink signals of TX and RM blocks*/
23585 {
23586 rtican_Signal_t CAN_Sgn;
23587
23588 /* ...... "SPN904_FrontAxleSpeed" (0|16, standard signal, unsigned int, little endian) */
23589 /* Add or substract 0.5 in order to round to nearest integer */
23590 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_p - ( 0 )
23591 ) / 0.00390625 + 0.5);
23592 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23593 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23594 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
23595
23596 /* ...... "SPN1807_SteeringWheelAngle" (16|16, standard signal, unsigned int, little endian) */
23597 /* Add or substract 0.5 in order to round to nearest integer */
23598 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_im -
23599 ( -31.374 ) ) / 0.0009765625 + 0.5);
23600 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23601 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23602 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
23603
23604 /* ...... "SPN1808_YawRate" (32|16, standard signal, unsigned int, little endian) */
23605 /* Add or substract 0.5 in order to round to nearest integer */
23606 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_nx -
23607 ( -3.92 ) ) / 0.0001220703125 + 0.5);
23608 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23609 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23610 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
23611
23612 /* ...... "SPN1810_LongitudinalAcceleration" (48|8, standard signal, unsigned int, little endian) */
23613 /* Add or substract 0.5 in order to round to nearest integer */
23614 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_p -
23615 ( -12.5 ) ) / 0.1 + 0.5);
23616 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23617 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23618 }
23619
23620 /* mask unused bits with '1' */
23621 CAN_Msg[7] |= 0xFF;
23622
23623 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23624 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA], 8, &(CAN_Msg[0]),
23625 delayTime);
23626 }
23627 }
23628
23629 /* End of Outputs for SubSystem: '<S1013>/Std_OdometryData' */
23630
23631 /* S-Function (sfix_bitop): '<S1007>/Operator' */
23632 L4_MABX_B.Operator_km = (uint8_T)(L4_MABX_B.DataTypeConversion_le &
23633 L4_MABX_P.Operator_BitMask_be);
23634
23635 /* DataTypeConversion: '<S1007>/DataType' */
23636 L4_MABX_B.DataType_cx = L4_MABX_B.Operator_km;
23637
23638 /* S-Function (sfix_bitop): '<S1008>/Operator' */
23639 L4_MABX_B.Operator_pt = (uint8_T)(L4_MABX_B.DataTypeConversion_le &
23640 L4_MABX_P.Operator_BitMask_im);
23641
23642 /* DataTypeConversion: '<S1008>/DataType' */
23643 L4_MABX_B.DataType_c = L4_MABX_B.Operator_pt;
23644
23645 /* S-Function (sfix_bitop): '<S1009>/Operator' */
23646 L4_MABX_B.Operator_da = (uint8_T)(L4_MABX_B.DataTypeConversion_le &
23647 L4_MABX_P.Operator_BitMask_e4);
23648
23649 /* DataTypeConversion: '<S1009>/DataType' */
23650 L4_MABX_B.DataType_h = L4_MABX_B.Operator_da;
23651
23652 /* S-Function (sfix_bitop): '<S1010>/Operator' */
23653 L4_MABX_B.Operator_ik = (uint8_T)(L4_MABX_B.DataTypeConversion_le &
23654 L4_MABX_P.Operator_BitMask_eg);
23655
23656 /* DataTypeConversion: '<S1010>/DataType' */
23657 L4_MABX_B.DataType_a = L4_MABX_B.Operator_ik;
23658
23659 /* S-Function (sfix_bitop): '<S1011>/Operator' */
23660 L4_MABX_B.Operator_af = (uint8_T)(L4_MABX_B.DataTypeConversion_le &
23661 L4_MABX_P.Operator_BitMask_k2);
23662
23663 /* DataTypeConversion: '<S1011>/DataType' */
23664 L4_MABX_B.DataType_j = L4_MABX_B.Operator_af;
23665
23666 /* DataTypeConversion: '<S998>/Data Type Conversion2' */
23667 L4_MABX_B.DataTypeConversion2_ke = (L4_MABX_B.DataType_cx != 0);
23668
23669 /* ArithShift: '<S998>/Shift_Arithmetic ' */
23670 L4_MABX_B.Shift_Arithmetic = ldexp(L4_MABX_B.DataType_c, (-1));
23671
23672 /* DataTypeConversion: '<S998>/Data Type Conversion3' */
23673 L4_MABX_B.DataTypeConversion3_nt = (L4_MABX_B.Shift_Arithmetic != 0.0);
23674
23675 /* ArithShift: '<S998>/Shift_Arithmetic 1' */
23676 L4_MABX_B.Shift_Arithmetic1 = ldexp(L4_MABX_B.DataType_h, (-2));
23677
23678 /* DataTypeConversion: '<S998>/Data Type Conversion4' */
23679 L4_MABX_B.DataTypeConversion4_o = (L4_MABX_B.Shift_Arithmetic1 != 0.0);
23680
23681 /* ArithShift: '<S998>/Shift_Arithmetic 2' */
23682 L4_MABX_B.Shift_Arithmetic2 = ldexp(L4_MABX_B.DataType_a, (-3));
23683
23684 /* DataTypeConversion: '<S998>/Data Type Conversion5' */
23685 L4_MABX_B.DataTypeConversion5_a = (L4_MABX_B.Shift_Arithmetic2 != 0.0);
23686
23687 /* ArithShift: '<S998>/Shift_Arithmetic 3' */
23688 L4_MABX_B.Shift_Arithmetic3 = ldexp(L4_MABX_B.DataType_j, (-4));
23689
23690 /* DataTypeConversion: '<S998>/Data Type Conversion6' */
23691 L4_MABX_B.DataTypeConversion6_c = (L4_MABX_B.Shift_Arithmetic3 != 0.0);
23692
23693 /* RelationalOperator: '<S1021>/Operator' */
23694 L4_MABX_B.Operator_cci = (L4_MABX_B.Switch1_nt == L4_MABX_B.Width_f);
23695
23696 /* Lookup_n-D: '<S1000>/DECEL_GOV_XBR_URGENCY_MPV' */
23697 L4_MABX_B.XBRUrgency = look1_binlcapw(L4_MABX_B.XBRExternalAccelDemand,
23698 L4_MABX_P.DECEL_GOV_XBR_URGENCY_MPV_bp01D,
23699 L4_MABX_P.DECEL_GOV_XBR_URGENCY_MPV_table, 7U);
23700
23701 /* End of Outputs for SubSystem: '<S834>/CAN_TX_20ms' */
23702
23703 /* Outputs for Atomic SubSystem: '<S65>/Task_20ms' */
23704 /* RelationalOperator: '<S389>/CheckHDOP' incorporates:
23705 * Constant: '<S389>/MaximumGoodHDOP'
23706 */
23707 L4_MABX_B.CheckHDOP = (L4_MABX_B.HDOP__f <= L4_MABX_P.MaximumGoodHDOP_Value);
23708
23709 /* Gain: '<S389>/kph2mps' */
23710 L4_MABX_B.kph2mps = L4_MABX_P.kph2mps_Gain_l * L4_MABX_B.FrontAxleSpeed_d;
23711
23712 /* Product: '<S389>/Product' incorporates:
23713 * Constant: '<S389>/lookAheadTime'
23714 */
23715 L4_MABX_B.Product_c = L4_MABX_B.kph2mps * L4_MABX_P.lookAheadTime_Value;
23716
23717 /* Gain: '<S389>/kph2mps1' */
23718 L4_MABX_B.kph2mps1 = L4_MABX_P.kph2mps1_Gain * L4_MABX_B.FrontAxleSpeed_dv;
23719
23720 /* Product: '<S389>/Product1' incorporates:
23721 * Constant: '<S389>/lookAheadTime1'
23722 */
23723 L4_MABX_B.Product1_h = L4_MABX_B.kph2mps1 * L4_MABX_P.lookAheadTime1_Value;
23724
23725 /* UnitDelay: '<S389>/Unit Delay1' */
23726 L4_MABX_B.UnitDelay1_o = L4_MABX_DW.UnitDelay1_DSTATE_n;
23727
23728 /* Constant: '<S390>/InitialHeading' */
23729 L4_MABX_B.InitialHeading = L4_MABX_P.InitialHeading_Value;
23730
23731 /* Constant: '<S390>/InitialPosition' */
23732 L4_MABX_B.InitialPosition = L4_MABX_P.InitialPosition_Value;
23733
23734 /* Constant: '<S390>/InitialXPosition' */
23735 L4_MABX_B.InitialXPosition = L4_MABX_P.InitialXPosition_Value;
23736
23737 /* Constant: '<S390>/InitialYPosition' */
23738 L4_MABX_B.InitialYPosition = L4_MABX_P.InitialYPosition_Value;
23739
23740 /* Gain: '<S71>/kph2ms' */
23741 L4_MABX_B.kph2ms = L4_MABX_P.kph2ms_Gain * L4_MABX_B.FrontAxleSpeed_dvq;
23742
23743 /* DiscreteIntegrator: '<S390>/LongitudnalPosition' incorporates:
23744 * Constant: '<S389>/Constant'
23745 */
23746 if ((L4_MABX_P.Constant_Value_p > 0.0) &&
23747 (L4_MABX_DW.LongitudnalPosition_PrevResetSt <= 0)) {
23748 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_B.InitialPosition;
23749 }
23750
23751 L4_MABX_B.LongitudnalPosition = L4_MABX_P.LongitudnalPosition_gainval *
23752 L4_MABX_B.kph2ms + L4_MABX_DW.LongitudnalPosition_DSTATE;
23753
23754 /* End of DiscreteIntegrator: '<S390>/LongitudnalPosition' */
23755
23756 /* Trigonometry: '<S390>/Trigonometric Function' */
23757 L4_MABX_B.TrigonometricFunction = sin(L4_MABX_B.kph2ms);
23758
23759 /* Trigonometry: '<S390>/Trigonometric Function1' */
23760 L4_MABX_B.TrigonometricFunction1 = cos(L4_MABX_B.kph2ms);
23761
23762 /* DiscreteIntegrator: '<S390>/VehHeading' incorporates:
23763 * Constant: '<S390>/reset'
23764 */
23765 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.VehHeading_PrevResetState <=
23766 0)) {
23767 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_B.InitialHeading;
23768 }
23769
23770 L4_MABX_B.VehHeading = L4_MABX_P.VehHeading_gainval *
23771 L4_MABX_B.TmpRTBAtVehHeadingInport1 + L4_MABX_DW.VehHeading_DSTATE;
23772
23773 /* End of DiscreteIntegrator: '<S390>/VehHeading' */
23774
23775 /* DiscreteIntegrator: '<S390>/XPosition' incorporates:
23776 * Constant: '<S390>/reset'
23777 */
23778 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.XPosition_PrevResetState <= 0))
23779 {
23780 L4_MABX_DW.XPosition_DSTATE = L4_MABX_B.InitialXPosition;
23781 }
23782
23783 L4_MABX_B.XPosition = L4_MABX_P.XPosition_gainval *
23784 L4_MABX_B.TrigonometricFunction1 + L4_MABX_DW.XPosition_DSTATE;
23785
23786 /* End of DiscreteIntegrator: '<S390>/XPosition' */
23787
23788 /* DiscreteIntegrator: '<S390>/YPosition' incorporates:
23789 * Constant: '<S390>/reset'
23790 */
23791 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.YPosition_PrevResetState <= 0))
23792 {
23793 L4_MABX_DW.YPosition_DSTATE = L4_MABX_B.InitialYPosition;
23794 }
23795
23796 L4_MABX_B.YPosition = L4_MABX_P.YPosition_gainval *
23797 L4_MABX_B.TrigonometricFunction + L4_MABX_DW.YPosition_DSTATE;
23798
23799 /* End of DiscreteIntegrator: '<S390>/YPosition' */
23800 /* End of Outputs for SubSystem: '<S65>/Task_20ms' */
23801
23802 /* UnitDelay: '<S3>/Unit_Delay' */
23803 L4_MABX_B.S = L4_MABX_DW.Unit_Delay_48_DSTATE;
23804 L4_MABX_B.B = L4_MABX_DW.Unit_Delay_49_DSTATE;
23805 L4_MABX_B.X = L4_MABX_DW.Unit_Delay_50_DSTATE;
23806 L4_MABX_B.Y = L4_MABX_DW.Unit_Delay_51_DSTATE;
23807 L4_MABX_B.pathCurveOffset = L4_MABX_DW.Unit_Delay_52_DSTATE;
23808 L4_MABX_B.S_b = L4_MABX_DW.Unit_Delay_53_DSTATE;
23809 L4_MABX_B.distanceSpdTarget = L4_MABX_DW.Unit_Delay_54_DSTATE;
23810 L4_MABX_B.state = L4_MABX_DW.Unit_Delay_55_DSTATE;
23811 L4_MABX_B.lastWayPointIdx = L4_MABX_DW.Unit_Delay_56_DSTATE;
23812 L4_MABX_B.crossed = L4_MABX_DW.Unit_Delay_57_DSTATE;
23813 L4_MABX_B.minimumDist = L4_MABX_DW.Unit_Delay_58_DSTATE;
23814 L4_MABX_B.SrefOnthisPath = L4_MABX_DW.Unit_Delay_59_DSTATE;
23815 L4_MABX_B.StartDist = L4_MABX_DW.Unit_Delay_60_DSTATE;
23816 L4_MABX_B.minDistIdx = L4_MABX_DW.Unit_Delay_61_DSTATE;
23817 L4_MABX_B.pathS = L4_MABX_DW.Unit_Delay_62_DSTATE;
23818 L4_MABX_B.pathLat = L4_MABX_DW.Unit_Delay_63_DSTATE;
23819 L4_MABX_B.pathLong = L4_MABX_DW.Unit_Delay_64_DSTATE;
23820 L4_MABX_B.pathSteeringAngle = L4_MABX_DW.Unit_Delay_65_DSTATE;
23821 L4_MABX_B.pathSpdLimit = L4_MABX_DW.Unit_Delay_66_DSTATE;
23822 L4_MABX_B.distance = L4_MABX_DW.Unit_Delay_67_DSTATE;
23823 L4_MABX_B.idx = L4_MABX_DW.Unit_Delay_68_DSTATE;
23824 L4_MABX_B.wpidx = L4_MABX_DW.Unit_Delay_69_DSTATE;
23825 L4_MABX_B.pathOffset = L4_MABX_DW.Unit_Delay_70_DSTATE;
23826 L4_MABX_B.sRefDistance = L4_MABX_DW.Unit_Delay_71_DSTATE;
23827 L4_MABX_B.refDistance = L4_MABX_DW.Unit_Delay_72_DSTATE;
23828 L4_MABX_B.wpIdx = L4_MABX_DW.Unit_Delay_73_DSTATE;
23829 L4_MABX_B.previewSteeringAngle_l = L4_MABX_DW.Unit_Delay_74_DSTATE;
23830 L4_MABX_B.desHeading = L4_MABX_DW.Unit_Delay_75_DSTATE;
23831 L4_MABX_B.actPreviewDist = L4_MABX_DW.Unit_Delay_76_DSTATE;
23832 L4_MABX_B.desPreviewDist = L4_MABX_DW.Unit_Delay_77_DSTATE;
23833 L4_MABX_B.mappingSearchCase = L4_MABX_DW.Unit_Delay_78_DSTATE;
23834
23835 /* user code (Output function Trailer for TID1) */
23836
23837 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
23838 /* EventChannel: 0 */
23839 if (tid == 0) {
23840 DSXCP_service(0);
23841 }
23842
23843 /* If subsystem generates rate grouping Output functions,
23844 * when tid is used in Output function for one rate,
23845 * all Output functions include tid as a local variable.
23846 * As result, some Output functions may have unused tid.
23847 */
23848 UNUSED_PARAMETER(tid);
23849}
23850
23851/* Model update function for TID1 */
23852void L4_MABX_update1(void) /* Sample time: [0.02s, 0.0s] */
23853{
23854 /* Update for Atomic SubSystem: '<S65>/Task_10ms' */
23855 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' incorporates:
23856 * Constant: '<S389>/Constant2'
23857 */
23858 L4_MABX_DW.TmpRTBAtSignalConversion1Inport = L4_MABX_P.Constant2_Value_a;
23859
23860 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' incorporates:
23861 * Constant: '<S389>/Constant13'
23862 */
23863 L4_MABX_DW.TmpRTBAtSignalConversion3Inport = L4_MABX_P.Constant13_Value;
23864
23865 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' incorporates:
23866 * Constant: '<S389>/Constant14'
23867 */
23868 L4_MABX_DW.TmpRTBAtSignalConversion2Inport = L4_MABX_P.Constant14_Value;
23869
23870 /* Update for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' incorporates:
23871 * Constant: '<S389>/Constant17'
23872 */
23873 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0 = L4_MABX_P.Constant17_Value;
23874
23875 /* Update for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' incorporates:
23876 * Constant: '<S389>/Constant1'
23877 */
23878 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_ = L4_MABX_P.Constant1_Value_g;
23879
23880 /* Update for RateTransition: '<S278>/TmpRTBAtAdd2Inport2' incorporates:
23881 * Constant: '<S389>/Constant18'
23882 */
23883 L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0 = L4_MABX_P.Constant18_Value;
23884
23885 /* End of Update for SubSystem: '<S65>/Task_10ms' */
23886
23887 /* Update for Atomic SubSystem: '<S834>/CAN_TX_20ms' */
23888
23889 /* Update for UnitDelay: '<S996>/Unit_Delay' */
23890 L4_MABX_DW.Unit_Delay_DSTATE_ly = L4_MABX_B.TmpRTBAtUnit_DelayInport1;
23891
23892 /* Update for UnitDelay: '<S1019>/Unit_Delay' */
23893 L4_MABX_DW.Unit_Delay_DSTATE_a = L4_MABX_B.Operator_cci;
23894
23895 /* Update for UnitDelay: '<S1020>/Unit Delay' */
23896 L4_MABX_DW.UnitDelay_DSTATE_j = L4_MABX_B.Switch1_nt;
23897
23898 /* End of Update for SubSystem: '<S834>/CAN_TX_20ms' */
23899
23900 /* Update for Atomic SubSystem: '<S65>/Task_20ms' */
23901 /* Update for UnitDelay: '<S389>/Unit Delay1' */
23902 L4_MABX_DW.UnitDelay1_DSTATE_n = L4_MABX_B.LongitudnalPosition;
23903
23904 /* Update for DiscreteIntegrator: '<S390>/LongitudnalPosition' incorporates:
23905 * Constant: '<S389>/Constant'
23906 */
23907 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_P.LongitudnalPosition_gainval *
23908 L4_MABX_B.kph2ms + L4_MABX_B.LongitudnalPosition;
23909 if (L4_MABX_P.Constant_Value_p > 0.0) {
23910 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 1;
23911 } else if (L4_MABX_P.Constant_Value_p < 0.0) {
23912 L4_MABX_DW.LongitudnalPosition_PrevResetSt = -1;
23913 } else if (L4_MABX_P.Constant_Value_p == 0.0) {
23914 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 0;
23915 } else {
23916 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 2;
23917 }
23918
23919 /* End of Update for DiscreteIntegrator: '<S390>/LongitudnalPosition' */
23920
23921 /* Update for DiscreteIntegrator: '<S390>/VehHeading' incorporates:
23922 * Constant: '<S390>/reset'
23923 * DiscreteIntegrator: '<S390>/XPosition'
23924 */
23925 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_P.VehHeading_gainval *
23926 L4_MABX_B.TmpRTBAtVehHeadingInport1 + L4_MABX_B.VehHeading;
23927 if (L4_MABX_P.reset_Value > 0.0) {
23928 L4_MABX_DW.VehHeading_PrevResetState = 1;
23929 L4_MABX_DW.XPosition_PrevResetState = 1;
23930 } else {
23931 if (L4_MABX_P.reset_Value < 0.0) {
23932 L4_MABX_DW.VehHeading_PrevResetState = -1;
23933 } else if (L4_MABX_P.reset_Value == 0.0) {
23934 L4_MABX_DW.VehHeading_PrevResetState = 0;
23935 } else {
23936 L4_MABX_DW.VehHeading_PrevResetState = 2;
23937 }
23938
23939 if (L4_MABX_P.reset_Value < 0.0) {
23940 L4_MABX_DW.XPosition_PrevResetState = -1;
23941 } else if (L4_MABX_P.reset_Value == 0.0) {
23942 L4_MABX_DW.XPosition_PrevResetState = 0;
23943 } else {
23944 L4_MABX_DW.XPosition_PrevResetState = 2;
23945 }
23946 }
23947
23948 /* End of Update for DiscreteIntegrator: '<S390>/VehHeading' */
23949
23950 /* Update for DiscreteIntegrator: '<S390>/XPosition' */
23951 L4_MABX_DW.XPosition_DSTATE = L4_MABX_P.XPosition_gainval *
23952 L4_MABX_B.TrigonometricFunction1 + L4_MABX_B.XPosition;
23953
23954 /* Update for DiscreteIntegrator: '<S390>/YPosition' incorporates:
23955 * Constant: '<S390>/reset'
23956 */
23957 L4_MABX_DW.YPosition_DSTATE = L4_MABX_P.YPosition_gainval *
23958 L4_MABX_B.TrigonometricFunction + L4_MABX_B.YPosition;
23959 if (L4_MABX_P.reset_Value > 0.0) {
23960 L4_MABX_DW.YPosition_PrevResetState = 1;
23961 } else if (L4_MABX_P.reset_Value < 0.0) {
23962 L4_MABX_DW.YPosition_PrevResetState = -1;
23963 } else if (L4_MABX_P.reset_Value == 0.0) {
23964 L4_MABX_DW.YPosition_PrevResetState = 0;
23965 } else {
23966 L4_MABX_DW.YPosition_PrevResetState = 2;
23967 }
23968
23969 /* End of Update for DiscreteIntegrator: '<S390>/YPosition' */
23970 /* End of Update for SubSystem: '<S65>/Task_20ms' */
23971
23972 /* Update for UnitDelay: '<S3>/Unit_Delay' incorporates:
23973 * Constant: '<S389>/Constant1'
23974 * Constant: '<S389>/Constant10'
23975 * Constant: '<S389>/Constant11'
23976 * Constant: '<S389>/Constant12'
23977 * Constant: '<S389>/Constant13'
23978 * Constant: '<S389>/Constant14'
23979 * Constant: '<S389>/Constant15'
23980 * Constant: '<S389>/Constant16'
23981 * Constant: '<S389>/Constant17'
23982 * Constant: '<S389>/Constant18'
23983 * Constant: '<S389>/Constant19'
23984 * Constant: '<S389>/Constant2'
23985 * Constant: '<S389>/Constant20'
23986 * Constant: '<S389>/Constant21'
23987 * Constant: '<S389>/Constant22'
23988 * Constant: '<S389>/Constant23'
23989 * Constant: '<S389>/Constant24'
23990 * Constant: '<S389>/Constant25'
23991 * Constant: '<S389>/Constant3'
23992 * Constant: '<S389>/Constant4'
23993 * Constant: '<S389>/Constant5'
23994 * Constant: '<S389>/Constant6'
23995 * Constant: '<S389>/Constant7'
23996 * Constant: '<S389>/Constant8'
23997 * Constant: '<S389>/Constant9'
23998 */
23999 L4_MABX_DW.Unit_Delay_48_DSTATE = L4_MABX_B.LongitudnalPosition;
24000 L4_MABX_DW.Unit_Delay_49_DSTATE = L4_MABX_B.VehHeading;
24001 L4_MABX_DW.Unit_Delay_50_DSTATE = L4_MABX_B.XPosition;
24002 L4_MABX_DW.Unit_Delay_51_DSTATE = L4_MABX_B.YPosition;
24003 L4_MABX_DW.Unit_Delay_52_DSTATE = L4_MABX_P.Constant1_Value_g;
24004 L4_MABX_DW.Unit_Delay_53_DSTATE = L4_MABX_B.UnitDelay1_o;
24005 L4_MABX_DW.Unit_Delay_54_DSTATE = L4_MABX_P.Constant2_Value_a;
24006 L4_MABX_DW.Unit_Delay_55_DSTATE = L4_MABX_P.Constant3_Value_l;
24007 L4_MABX_DW.Unit_Delay_56_DSTATE = L4_MABX_P.Constant4_Value_m;
24008 L4_MABX_DW.Unit_Delay_57_DSTATE = L4_MABX_P.Constant5_Value_b;
24009 L4_MABX_DW.Unit_Delay_58_DSTATE = L4_MABX_P.Constant10_Value_h;
24010 L4_MABX_DW.Unit_Delay_59_DSTATE = L4_MABX_P.Constant25_Value;
24011 L4_MABX_DW.Unit_Delay_60_DSTATE = L4_MABX_P.Constant6_Value_e;
24012 L4_MABX_DW.Unit_Delay_61_DSTATE = L4_MABX_P.Constant7_Value;
24013 L4_MABX_DW.Unit_Delay_62_DSTATE = L4_MABX_P.Constant8_Value;
24014 L4_MABX_DW.Unit_Delay_63_DSTATE = L4_MABX_P.Constant9_Value_m;
24015 L4_MABX_DW.Unit_Delay_64_DSTATE = L4_MABX_P.Constant11_Value;
24016 L4_MABX_DW.Unit_Delay_65_DSTATE = L4_MABX_P.Constant12_Value;
24017 L4_MABX_DW.Unit_Delay_66_DSTATE = L4_MABX_P.Constant13_Value;
24018 L4_MABX_DW.Unit_Delay_67_DSTATE = L4_MABX_P.Constant14_Value;
24019 L4_MABX_DW.Unit_Delay_68_DSTATE = L4_MABX_P.Constant19_Value_m;
24020 L4_MABX_DW.Unit_Delay_69_DSTATE = L4_MABX_P.Constant16_Value;
24021 L4_MABX_DW.Unit_Delay_70_DSTATE = L4_MABX_P.Constant21_Value_g;
24022 L4_MABX_DW.Unit_Delay_71_DSTATE = L4_MABX_P.Constant22_Value;
24023 L4_MABX_DW.Unit_Delay_72_DSTATE = L4_MABX_P.Constant15_Value;
24024 L4_MABX_DW.Unit_Delay_73_DSTATE = L4_MABX_P.Constant20_Value_i;
24025 L4_MABX_DW.Unit_Delay_74_DSTATE = L4_MABX_P.Constant17_Value;
24026 L4_MABX_DW.Unit_Delay_75_DSTATE = L4_MABX_P.Constant18_Value;
24027 L4_MABX_DW.Unit_Delay_76_DSTATE = L4_MABX_P.Constant23_Value;
24028 L4_MABX_DW.Unit_Delay_77_DSTATE = L4_MABX_B.Product_c;
24029 L4_MABX_DW.Unit_Delay_78_DSTATE = L4_MABX_P.Constant24_Value;
24030}
24031
24032/* Model output function for TID2 */
24033void L4_MABX_output2(void) /* Sample time: [0.05s, 0.0s] */
24034{
24035 int_T tid = 2;
24036
24037 /* Outputs for Atomic SubSystem: '<S834>/CAN_TX_50ms' */
24038
24039 /* Outputs for Enabled SubSystem: '<S1039>/CCVS1_E3' incorporates:
24040 * EnablePort: '<S1041>/Enable'
24041 */
24042 /* Constant: '<S843>/enable_CAN_TX_CCVS1_CAN3' */
24043 if (L4_MABX_P.enable_CAN_TX_CCVS1_CAN3_Value > 0.0) {
24044 /* S-Function (rti_commonblock): '<S1041>/S-Function1' */
24045 /* This comment workarounds a code generation problem */
24046
24047 /* dSPACE RTICAN TX Message Block: "CCVS1_E3" Id:419361251 */
24048 {
24049 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24050
24051 Float32 delayTime = 0.0;
24052
24053 /* ... Read status and timestamp info (previous message) */
24054 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]);
24055
24056 /* Convert timestamp */
24057 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->processed) {
24058 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp =
24059 rtk_dsts_time_to_simtime_convert
24060 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp);
24061 }
24062
24063 /* Messages with timestamp zero have been received in pause/stop state
24064 and must not be handled.
24065 */
24066 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp > 0.0) {
24067 L4_MABX_B.SFunction1_o1_dg = (real_T)
24068 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->processed;
24069 L4_MABX_B.SFunction1_o2_l = (real_T)
24070 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp;
24071 L4_MABX_B.SFunction1_o3_i = (real_T)
24072 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->deltatime;
24073 L4_MABX_B.SFunction1_o4_p = (real_T)
24074 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->delaytime;
24075 }
24076
24077 /* ... Encode Simulink signals of TX and RM blocks*/
24078 {
24079 rtican_Signal_t CAN_Sgn;
24080
24081 /* ...... "SPN69_TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
24082 /* Add or substract 0.5 in order to round to nearest integer */
24083 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch ) + 0.5);
24084 CAN_Sgn.UnsignedSgn &= 0x00000003;
24085 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24086
24087 /* ...... "SPN70_ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
24088 /* Add or substract 0.5 in order to round to nearest integer */
24089 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch ) + 0.5);
24090 CAN_Sgn.UnsignedSgn &= 0x00000003;
24091 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24092 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24093
24094 /* ...... "SPN1633_CruiseControlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
24095 /* Add or substract 0.5 in order to round to nearest integer */
24096 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch ) +
24097 0.5);
24098 CAN_Sgn.UnsignedSgn &= 0x00000003;
24099 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24100 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24101
24102 /* ...... "SPN3807_ParkBrakeReleaseInhReq" (6|2, standard signal, unsigned int, little endian) */
24103 /* Add or substract 0.5 in order to round to nearest integer */
24104 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq )
24105 + 0.5);
24106 CAN_Sgn.UnsignedSgn &= 0x00000003;
24107 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24108 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24109
24110 /* ...... "SPN84_WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
24111 /* Add or substract 0.5 in order to round to nearest integer */
24112 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_i - (
24113 0 ) ) / 0.00390625 + 0.5);
24114 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
24115 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24116 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
24117
24118 /* ...... "SPN595_CruiseControlActive" (24|2, standard signal, unsigned int, little endian) */
24119 /* Add or substract 0.5 in order to round to nearest integer */
24120 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive ) + 0.5);
24121 CAN_Sgn.UnsignedSgn &= 0x00000003;
24122 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24123
24124 /* ...... "SPN596_CruiseControlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
24125 /* Add or substract 0.5 in order to round to nearest integer */
24126 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_e ) +
24127 0.5);
24128 CAN_Sgn.UnsignedSgn &= 0x00000003;
24129 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24130 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24131
24132 /* ...... "SPN597_BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
24133 /* Add or substract 0.5 in order to round to nearest integer */
24134 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_j ) + 0.5);
24135 CAN_Sgn.UnsignedSgn &= 0x00000003;
24136 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24137 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24138
24139 /* ...... "SPN598_ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
24140 /* Add or substract 0.5 in order to round to nearest integer */
24141 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch ) + 0.5);
24142 CAN_Sgn.UnsignedSgn &= 0x00000003;
24143 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24144 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24145
24146 /* ...... "SPN599_CruiseControlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
24147 /* Add or substract 0.5 in order to round to nearest integer */
24148 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch ) + 0.5);
24149 CAN_Sgn.UnsignedSgn &= 0x00000003;
24150 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24151
24152 /* ...... "SPN600_CruiseControlCoastDecelSw" (34|2, standard signal, unsigned int, little endian) */
24153 /* Add or substract 0.5 in order to round to nearest integer */
24154 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch ) +
24155 0.5);
24156 CAN_Sgn.UnsignedSgn &= 0x00000003;
24157 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24158 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24159
24160 /* ...... "SPN601_CruiseControlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
24161 /* Add or substract 0.5 in order to round to nearest integer */
24162 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch ) +
24163 0.5);
24164 CAN_Sgn.UnsignedSgn &= 0x00000003;
24165 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24166 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24167
24168 /* ...... "SPN602_CruiseControlAccelerateSw" (38|2, standard signal, unsigned int, little endian) */
24169 /* Add or substract 0.5 in order to round to nearest integer */
24170 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlAccelerateSwitch )
24171 + 0.5);
24172 CAN_Sgn.UnsignedSgn &= 0x00000003;
24173 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24174 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24175
24176 /* ...... "SPN86_CruiseControlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
24177 /* Add or substract 0.5 in order to round to nearest integer */
24178 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed ) + 0.5);
24179 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24180 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24181
24182 /* ...... "SPN976_PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
24183 /* Add or substract 0.5 in order to round to nearest integer */
24184 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState ) + 0.5);
24185 CAN_Sgn.UnsignedSgn &= 0x0000001F;
24186 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24187
24188 /* ...... "SPN527_CruiseControlStates" (53|3, standard signal, unsigned int, little endian) */
24189 /* Add or substract 0.5 in order to round to nearest integer */
24190 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates ) + 0.5);
24191 CAN_Sgn.UnsignedSgn &= 0x00000007;
24192 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
24193 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24194
24195 /* ...... "SPN968_EngIdleIncrementSw" (56|2, standard signal, unsigned int, little endian) */
24196 /* Add or substract 0.5 in order to round to nearest integer */
24197 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch ) +
24198 0.5);
24199 CAN_Sgn.UnsignedSgn &= 0x00000003;
24200 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24201
24202 /* ...... "SPN967_EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
24203 /* Add or substract 0.5 in order to round to nearest integer */
24204 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch ) +
24205 0.5);
24206 CAN_Sgn.UnsignedSgn &= 0x00000003;
24207 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24208 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24209
24210 /* ...... "SPN966_EngDiagTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
24211 /* Add or substract 0.5 in order to round to nearest integer */
24212 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch ) + 0.5);
24213 CAN_Sgn.UnsignedSgn &= 0x00000003;
24214 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24215 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24216
24217 /* ...... "SPN1237_EngShutdownOvrdSwitch" (62|2, standard signal, unsigned int, little endian) */
24218 /* Add or substract 0.5 in order to round to nearest integer */
24219 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch )
24220 + 0.5);
24221 CAN_Sgn.UnsignedSgn &= 0x00000003;
24222 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24223 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24224 }
24225
24226 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24227 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3], 8,
24228 &(CAN_Msg[0]), delayTime);
24229 }
24230 }
24231
24232 /* End of Constant: '<S843>/enable_CAN_TX_CCVS1_CAN3' */
24233 /* End of Outputs for SubSystem: '<S1039>/CCVS1_E3' */
24234
24235 /* Outputs for Enabled SubSystem: '<S1040>/TC1_03_05' incorporates:
24236 * EnablePort: '<S1042>/Enable'
24237 */
24238 /* Constant: '<S1040>/CANT_TC1_03_05_APV' */
24239 if (L4_MABX_P.CANT_TC1_03_05_APV_Value) {
24240 /* S-Function (rti_commonblock): '<S1042>/S-Function1' */
24241 /* This comment workarounds a code generation problem */
24242
24243 /* dSPACE RTICAN TX Message Block: "TC1_03_05" Id:201392901 */
24244 {
24245 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24246
24247 Float32 delayTime = 0.0;
24248
24249 /* ... Read status and timestamp info (previous message) */
24250 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]);
24251
24252 /* Convert timestamp */
24253 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->processed) {
24254 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp =
24255 rtk_dsts_time_to_simtime_convert
24256 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp);
24257 }
24258
24259 /* Messages with timestamp zero have been received in pause/stop state
24260 and must not be handled.
24261 */
24262 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp > 0.0) {
24263 L4_MABX_B.SFunction1_o1_f = (real_T)
24264 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->processed;
24265 L4_MABX_B.SFunction1_o2_k = (real_T)
24266 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp;
24267 L4_MABX_B.SFunction1_o3_a = (real_T)
24268 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->deltatime;
24269 L4_MABX_B.SFunction1_o4_d = (real_T)
24270 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->delaytime;
24271 }
24272
24273 /* ... Encode Simulink signals of TX and RM blocks*/
24274 {
24275 rtican_Signal_t CAN_Sgn;
24276
24277 /* ...... "SPN681_TransGearShiftInhibitReq" (0|2, standard signal, unsigned int, little endian) */
24278 /* Add or substract 0.5 in order to round to nearest integer */
24279 CAN_Sgn.UnsignedSgn = (UInt32)
24280 (( L4_MABX_B.SPN681_TransGearShiftInhibitReq ) + 0.5);
24281 CAN_Sgn.UnsignedSgn &= 0x00000003;
24282 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24283
24284 /* ...... "SPN682_TransTrqConvLockupDisReq" (2|2, standard signal, unsigned int, little endian) */
24285 /* Add or substract 0.5 in order to round to nearest integer */
24286 CAN_Sgn.UnsignedSgn = (UInt32)
24287 (( L4_MABX_B.SPN682_TransTrqConvLockupDisReq ) + 0.5);
24288 CAN_Sgn.UnsignedSgn &= 0x00000003;
24289 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24290 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24291
24292 /* ...... "SPN683_DisengageDrivelineReq" (4|2, standard signal, unsigned int, little endian) */
24293 /* Add or substract 0.5 in order to round to nearest integer */
24294 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN683_DisengageDrivelineReq
24295 ) + 0.5);
24296 CAN_Sgn.UnsignedSgn &= 0x00000003;
24297 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24298 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24299
24300 /* ...... "SPN4242_TransRevGearShiftInhibRq" (6|2, standard signal, unsigned int, little endian) */
24301 /* Add or substract 0.5 in order to round to nearest integer */
24302 CAN_Sgn.UnsignedSgn = (UInt32)
24303 (( L4_MABX_B.SPN4242_TransRevGearShiftInhibR ) + 0.5);
24304 CAN_Sgn.UnsignedSgn &= 0x00000003;
24305 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24306 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24307
24308 /* ...... "SPN684_RequestedPercClutchSlip" (8|8, standard signal, unsigned int, little endian) */
24309 /* Add or substract 0.5 in order to round to nearest integer */
24310 CAN_Sgn.UnsignedSgn = (UInt32)
24311 (( L4_MABX_B.SPN684_RequestedPercClutchSlip - ( 0 ) ) / 0.4 + 0.5);
24312 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24313 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24314
24315 /* ...... "SPN525_TransRequestedGear" (16|8, standard signal, unsigned int, little endian) */
24316 /* Add or substract 0.5 in order to round to nearest integer */
24317 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.SPN525_TransRequestedGear - (
24318 -125 ) + 0.5);
24319 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24320 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
24321
24322 /* ...... "SPN685_DisengageDiffLockRqFrAx1" (24|2, standard signal, unsigned int, little endian) */
24323 /* Add or substract 0.5 in order to round to nearest integer */
24324 CAN_Sgn.UnsignedSgn = (UInt32)
24325 (( L4_MABX_B.SPN685_DisengageDiffLockRqFrAx1 ) + 0.5);
24326 CAN_Sgn.UnsignedSgn &= 0x00000003;
24327 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24328
24329 /* ...... "SPN686_DisengageDiffLockRqFrAx2" (26|2, standard signal, unsigned int, little endian) */
24330 /* Add or substract 0.5 in order to round to nearest integer */
24331 CAN_Sgn.UnsignedSgn = (UInt32)
24332 (( L4_MABX_B.SPN686_DisengageDiffLockRqFrAx2 ) + 0.5);
24333 CAN_Sgn.UnsignedSgn &= 0x00000003;
24334 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24335 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24336
24337 /* ...... "SPN687_DisengageDiffLockRqRrAx1" (28|2, standard signal, unsigned int, little endian) */
24338 /* Add or substract 0.5 in order to round to nearest integer */
24339 CAN_Sgn.UnsignedSgn = (UInt32)
24340 (( L4_MABX_B.SPN687_DisengageDiffLockRqRrAx1 ) + 0.5);
24341 CAN_Sgn.UnsignedSgn &= 0x00000003;
24342 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24343 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24344
24345 /* ...... "SPN688_DisengageDiffLockRqRrAx2" (30|2, standard signal, unsigned int, little endian) */
24346 /* Add or substract 0.5 in order to round to nearest integer */
24347 CAN_Sgn.UnsignedSgn = (UInt32)
24348 (( L4_MABX_B.SPN688_DisengageDiffLockRqRrAx2 ) + 0.5);
24349 CAN_Sgn.UnsignedSgn &= 0x00000003;
24350 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24351 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24352
24353 /* ...... "SPN689_DisengageDiffLockRqC" (32|2, standard signal, unsigned int, little endian) */
24354 /* Add or substract 0.5 in order to round to nearest integer */
24355 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN689_DisengageDiffLockRqC )
24356 + 0.5);
24357 CAN_Sgn.UnsignedSgn &= 0x00000003;
24358 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24359
24360 /* ...... "SPN690_DisengageDiffLockRqCF" (34|2, standard signal, unsigned int, little endian) */
24361 /* Add or substract 0.5 in order to round to nearest integer */
24362 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN690_DisengageDiffLockRqCF
24363 ) + 0.5);
24364 CAN_Sgn.UnsignedSgn &= 0x00000003;
24365 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24366 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24367
24368 /* ...... "SPN691_DisengageDiffLockRqCR" (36|2, standard signal, unsigned int, little endian) */
24369 /* Add or substract 0.5 in order to round to nearest integer */
24370 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN691_DisengageDiffLockRqCR
24371 ) + 0.5);
24372 CAN_Sgn.UnsignedSgn &= 0x00000003;
24373 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24374 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24375
24376 /* ...... "SPN5762_TransLoadRedInhibitRq" (38|2, standard signal, unsigned int, little endian) */
24377 /* Add or substract 0.5 in order to round to nearest integer */
24378 CAN_Sgn.UnsignedSgn = (UInt32)
24379 (( L4_MABX_B.SPN5762_TransLoadRedInhibitRq ) + 0.5);
24380 CAN_Sgn.UnsignedSgn &= 0x00000003;
24381 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24382 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24383
24384 /* ...... "SPN1852_TransmissionMode1" (40|2, standard signal, unsigned int, little endian) */
24385 /* Add or substract 0.5 in order to round to nearest integer */
24386 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1852_TransmissionMode1 )
24387 + 0.5);
24388 CAN_Sgn.UnsignedSgn &= 0x00000003;
24389 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24390
24391 /* ...... "SPN1853_TransmissionMode2" (42|2, standard signal, unsigned int, little endian) */
24392 /* Add or substract 0.5 in order to round to nearest integer */
24393 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1853_TransmissionMode2 )
24394 + 0.5);
24395 CAN_Sgn.UnsignedSgn &= 0x00000003;
24396 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24397 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24398
24399 /* ...... "SPN1854_TransmissionMode3" (44|2, standard signal, unsigned int, little endian) */
24400 /* Add or substract 0.5 in order to round to nearest integer */
24401 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1854_TransmissionMode3 )
24402 + 0.5);
24403 CAN_Sgn.UnsignedSgn &= 0x00000003;
24404 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24405 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24406
24407 /* ...... "SPN1855_TransmissionMode4" (46|2, standard signal, unsigned int, little endian) */
24408 /* Add or substract 0.5 in order to round to nearest integer */
24409 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1855_TransmissionMode4 )
24410 + 0.5);
24411 CAN_Sgn.UnsignedSgn &= 0x00000003;
24412 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24413 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24414
24415 /* ...... "SPN7695_TransAutoNeutralRequest" (48|2, standard signal, unsigned int, little endian) */
24416 /* Add or substract 0.5 in order to round to nearest integer */
24417 CAN_Sgn.UnsignedSgn = (UInt32)
24418 (( L4_MABX_B.SPN7695_TransAutoNeutralRequest ) + 0.5);
24419 CAN_Sgn.UnsignedSgn &= 0x00000003;
24420 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24421
24422 /* ...... "SPN4255_TransRequestedLaunchGear" (50|4, standard signal, unsigned int, little endian) */
24423 /* Add or substract 0.5 in order to round to nearest integer */
24424 CAN_Sgn.UnsignedSgn = (UInt32)
24425 (( L4_MABX_B.SPN4255_TransRequestedLaunchGea ) + 0.5);
24426 CAN_Sgn.UnsignedSgn &= 0x0000000F;
24427 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24428 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24429
24430 /* ...... "SPN2985_TransShiftSelDispModeSw" (54|2, standard signal, unsigned int, little endian) */
24431 /* Add or substract 0.5 in order to round to nearest integer */
24432 CAN_Sgn.UnsignedSgn = (UInt32)
24433 (( L4_MABX_B.SPN2985_TransShiftSelDispModeSw ) + 0.5);
24434 CAN_Sgn.UnsignedSgn &= 0x00000003;
24435 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24436 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24437
24438 /* ...... "SPN4246_TransmissionMode5" (56|2, standard signal, unsigned int, little endian) */
24439 /* Add or substract 0.5 in order to round to nearest integer */
24440 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4246_TransmissionMode5 )
24441 + 0.5);
24442 CAN_Sgn.UnsignedSgn &= 0x00000003;
24443 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24444
24445 /* ...... "SPN4247_TransmissionMode6" (58|2, standard signal, unsigned int, little endian) */
24446 /* Add or substract 0.5 in order to round to nearest integer */
24447 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4247_TransmissionMode6 )
24448 + 0.5);
24449 CAN_Sgn.UnsignedSgn &= 0x00000003;
24450 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24451 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24452
24453 /* ...... "SPN4248_TransmissionMode7" (60|2, standard signal, unsigned int, little endian) */
24454 /* Add or substract 0.5 in order to round to nearest integer */
24455 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4248_TransmissionMode7 )
24456 + 0.5);
24457 CAN_Sgn.UnsignedSgn &= 0x00000003;
24458 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24459 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24460
24461 /* ...... "SPN4249_TransmissionMode8" (62|2, standard signal, unsigned int, little endian) */
24462 /* Add or substract 0.5 in order to round to nearest integer */
24463 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4249_TransmissionMode8 )
24464 + 0.5);
24465 CAN_Sgn.UnsignedSgn &= 0x00000003;
24466 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24467 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24468 }
24469
24470 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24471 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305], 8,
24472 &(CAN_Msg[0]), delayTime);
24473 }
24474 }
24475
24476 /* End of Constant: '<S1040>/CANT_TC1_03_05_APV' */
24477 /* End of Outputs for SubSystem: '<S1040>/TC1_03_05' */
24478
24479 /* End of Outputs for SubSystem: '<S834>/CAN_TX_50ms' */
24480 /* user code (Output function Trailer for TID2) */
24481
24482 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
24483 /* EventChannel: 0 */
24484 if (tid == 0) {
24485 DSXCP_service(0);
24486 }
24487
24488 /* If subsystem generates rate grouping Output functions,
24489 * when tid is used in Output function for one rate,
24490 * all Output functions include tid as a local variable.
24491 * As result, some Output functions may have unused tid.
24492 */
24493 UNUSED_PARAMETER(tid);
24494}
24495
24496/* Model update function for TID2 */
24497void L4_MABX_update2(void) /* Sample time: [0.05s, 0.0s] */
24498{
24499 /* (no update code required) */
24500}
24501
24502/* Model output function for TID3 */
24503void L4_MABX_output3(void) /* Sample time: [0.1s, 0.0s] */
24504{
24505 int_T tid = 3;
24506 uint16_T tmp;
24507 uint32_T tmp_0;
24508 uint8_T tmp_1;
24509 real_T tmp_2;
24510
24511 /* Outputs for Atomic SubSystem: '<S834>/CAN_TX_100ms' */
24512
24513 /* DataTypeConversion: '<S871>/Data Type Conversion' incorporates:
24514 * Constant: '<S838>/PROPB_XPR_INHIBIT_PARK_MANUAL_APV'
24515 */
24516 L4_MABX_B.DataTypeConversion_e3 = (uint8_T)
24517 L4_MABX_P.PROPB_XPR_INHIBIT_PARK_MANUAL_A;
24518
24519 /* S-Function (sfix_bitop): '<S903>/Operator' */
24520 L4_MABX_B.Operator_fc = (uint8_T)(L4_MABX_B.DataTypeConversion_e3 &
24521 L4_MABX_P.Operator_BitMask_e);
24522
24523 /* DataTypeConversion: '<S903>/DataType' */
24524 L4_MABX_B.DataType_fh = L4_MABX_B.Operator_fc;
24525
24526 /* DataTypeConversion: '<S871>/Data Type Conversion2' incorporates:
24527 * Constant: '<S838>/PROPB_XPR_INHIBIT_UNPARK_MANUAL_APV'
24528 */
24529 L4_MABX_B.DataTypeConversion2_mu = (uint8_T)
24530 L4_MABX_P.PROPB_XPR_INHIBIT_UNPARK_MANUAL;
24531
24532 /* S-Function (sfix_bitop): '<S905>/Operator' */
24533 L4_MABX_B.Operator_dfv = (uint8_T)(L4_MABX_B.DataTypeConversion2_mu &
24534 L4_MABX_P.Operator_BitMask_p3);
24535
24536 /* DataTypeConversion: '<S905>/DataType' */
24537 L4_MABX_B.DataType_izk = L4_MABX_B.Operator_dfv;
24538
24539 /* ArithShift: '<S871>/Shift_Arithmetic ' */
24540 L4_MABX_B.Shift_Arithmetic_e = (uint8_T)(L4_MABX_B.DataType_izk << 2);
24541
24542 /* DataTypeConversion: '<S871>/Data Type Conversion4' incorporates:
24543 * Constant: '<S838>/PROPB_XPR_PARK_MANUAL_APV'
24544 */
24545 L4_MABX_B.DataTypeConversion4_gg = (uint8_T)
24546 L4_MABX_P.PROPB_XPR_PARK_MANUAL_APV_Value;
24547
24548 /* S-Function (sfix_bitop): '<S906>/Operator' */
24549 L4_MABX_B.Operator_mh = (uint8_T)(L4_MABX_B.DataTypeConversion4_gg &
24550 L4_MABX_P.Operator_BitMask_eq);
24551
24552 /* DataTypeConversion: '<S906>/DataType' */
24553 L4_MABX_B.DataType_on = L4_MABX_B.Operator_mh;
24554
24555 /* ArithShift: '<S871>/Shift_Arithmetic 1' */
24556 L4_MABX_B.Shift_Arithmetic1_mp = (uint8_T)(L4_MABX_B.DataType_on << 4);
24557
24558 /* DataTypeConversion: '<S871>/Data Type Conversion5' incorporates:
24559 * Constant: '<S838>/PROPB_XPR_UNPARK_MANUAL_APV'
24560 */
24561 L4_MABX_B.DataTypeConversion5_fy = (uint8_T)
24562 L4_MABX_P.PROPB_XPR_UNPARK_MANUAL_APV_Val;
24563
24564 /* S-Function (sfix_bitop): '<S904>/Operator' */
24565 L4_MABX_B.Operator_kj = (uint8_T)(L4_MABX_B.DataTypeConversion5_fy &
24566 L4_MABX_P.Operator_BitMask_mm);
24567
24568 /* DataTypeConversion: '<S904>/DataType' */
24569 L4_MABX_B.DataType_ne = L4_MABX_B.Operator_kj;
24570
24571 /* ArithShift: '<S871>/Shift_Arithmetic 2' */
24572 L4_MABX_B.Shift_Arithmetic2_pc = (uint8_T)(L4_MABX_B.DataType_ne << 6);
24573
24574 /* S-Function (sfix_bitop): '<S911>/Operator' */
24575 L4_MABX_B.Operator_gl = (uint8_T)(L4_MABX_B.DataType_fh |
24576 L4_MABX_B.Shift_Arithmetic_e | L4_MABX_B.Shift_Arithmetic1_mp |
24577 L4_MABX_B.Shift_Arithmetic2_pc);
24578
24579 /* DataTypeConversion: '<S911>/DataType' */
24580 L4_MABX_B.DataType_kk = L4_MABX_B.Operator_gl;
24581
24582 /* Outputs for Enabled SubSystem: '<S871>/Rolling_15_counter' incorporates:
24583 * EnablePort: '<S913>/Enable'
24584 */
24585 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R) {
24586 /* UnitDelay: '<S913>/Unit_Delay' */
24587 L4_MABX_B.Unit_Delay = L4_MABX_DW.Unit_Delay_DSTATE;
24588
24589 /* Sum: '<S921>/FixPt Sum1' incorporates:
24590 * Constant: '<S921>/FixPt Constant'
24591 */
24592 L4_MABX_B.FixPtSum1_i = L4_MABX_B.Unit_Delay + L4_MABX_P.FixPtConstant_Value;
24593
24594 /* Switch: '<S922>/FixPt Switch' incorporates:
24595 * Constant: '<S922>/Constant'
24596 */
24597 if (L4_MABX_B.FixPtSum1_i > L4_MABX_P.WrapToZero1_Threshold) {
24598 L4_MABX_B.FixPtSwitch = L4_MABX_P.Constant_Value_c;
24599 } else {
24600 L4_MABX_B.FixPtSwitch = L4_MABX_B.FixPtSum1_i;
24601 }
24602
24603 /* End of Switch: '<S922>/FixPt Switch' */
24604 }
24605
24606 /* End of Outputs for SubSystem: '<S871>/Rolling_15_counter' */
24607
24608 /* DataTypeConversion: '<S871>/Data Type Conversion1' */
24609 tmp_2 = L4_MABX_B.Unit_Delay;
24610 if (tmp_2 < 256.0) {
24611 if (tmp_2 >= 0.0) {
24612 tmp_1 = (uint8_T)tmp_2;
24613 } else {
24614 tmp_1 = 0U;
24615 }
24616 } else {
24617 tmp_1 = MAX_uint8_T;
24618 }
24619
24620 L4_MABX_B.DataTypeConversion1_hp = tmp_1;
24621
24622 /* End of DataTypeConversion: '<S871>/Data Type Conversion1' */
24623
24624 /* S-Function (sfix_bitop): '<S907>/Operator' */
24625 L4_MABX_B.Operator_c3 = (uint8_T)(L4_MABX_B.DataTypeConversion1_hp &
24626 L4_MABX_P.Operator_BitMask_ed);
24627
24628 /* DataTypeConversion: '<S907>/DataType' */
24629 L4_MABX_B.DataType_ge = L4_MABX_B.Operator_c3;
24630
24631 /* DataTypeConversion: '<S910>/Data Type Conversion' incorporates:
24632 * Constant: '<S910>/Priority'
24633 */
24634 L4_MABX_B.DataTypeConversion_d = L4_MABX_P.Priority_Value;
24635
24636 /* ArithShift: '<S910>/Shift_Arithmetic ' */
24637 L4_MABX_B.Shift_Arithmetic_l = L4_MABX_B.DataTypeConversion_d << 26;
24638
24639 /* DataTypeConversion: '<S910>/Data Type Conversion1' incorporates:
24640 * Constant: '<S910>/ExtendedDataPage'
24641 */
24642 L4_MABX_B.DataTypeConversion1_jr = L4_MABX_P.ExtendedDataPage_Value;
24643
24644 /* ArithShift: '<S910>/Shift_Arithmetic 1' */
24645 L4_MABX_B.Shift_Arithmetic1_l = L4_MABX_B.DataTypeConversion1_jr << 25;
24646
24647 /* DataTypeConversion: '<S910>/Data Type Conversion2' incorporates:
24648 * Constant: '<S910>/DataPage'
24649 */
24650 L4_MABX_B.DataTypeConversion2_et = L4_MABX_P.DataPage_Value;
24651
24652 /* ArithShift: '<S910>/Shift_Arithmetic 2' */
24653 L4_MABX_B.Shift_Arithmetic2_fy = L4_MABX_B.DataTypeConversion2_et << 24;
24654
24655 /* DataTypeConversion: '<S910>/Data Type Conversion3' incorporates:
24656 * Constant: '<S910>/PDUFormat'
24657 */
24658 L4_MABX_B.DataTypeConversion3_g = L4_MABX_P.PDUFormat_Value;
24659
24660 /* ArithShift: '<S910>/Shift_Arithmetic 3' */
24661 L4_MABX_B.Shift_Arithmetic3_m = L4_MABX_B.DataTypeConversion3_g << 16;
24662
24663 /* DataTypeConversion: '<S910>/Data Type Conversion4' incorporates:
24664 * Constant: '<S910>/PDUSpecific'
24665 */
24666 L4_MABX_B.DataTypeConversion4_h = L4_MABX_P.PDUSpecific_Value;
24667
24668 /* ArithShift: '<S910>/Shift_Arithmetic 4' */
24669 L4_MABX_B.Shift_Arithmetic4_o = L4_MABX_B.DataTypeConversion4_h << 8;
24670
24671 /* DataTypeConversion: '<S910>/Data Type Conversion5' incorporates:
24672 * Constant: '<S910>/SourceAddress'
24673 */
24674 L4_MABX_B.DataTypeConversion5_js = L4_MABX_P.SourceAddress_Value;
24675
24676 /* S-Function (sfix_bitop): '<S920>/Operator' */
24677 L4_MABX_B.Operator_l = L4_MABX_B.Shift_Arithmetic_l |
24678 L4_MABX_B.Shift_Arithmetic1_l | L4_MABX_B.Shift_Arithmetic2_fy |
24679 L4_MABX_B.Shift_Arithmetic3_m | L4_MABX_B.Shift_Arithmetic4_o |
24680 L4_MABX_B.DataTypeConversion5_js;
24681
24682 /* DataTypeConversion: '<S920>/DataType' */
24683 L4_MABX_B.DataType_ia = L4_MABX_B.Operator_l;
24684
24685 /* DataTypeConversion: '<S909>/Data Type Conversion8' */
24686 L4_MABX_B.DataTypeConversion8_p = L4_MABX_B.DataType_ia;
24687
24688 /* S-Function (sfix_bitop): '<S916>/Operator' */
24689 L4_MABX_B.Operator_cg = L4_MABX_B.DataTypeConversion8_p &
24690 L4_MABX_P.Operator_BitMask_ob;
24691
24692 /* DataTypeConversion: '<S916>/DataType' */
24693 tmp_0 = L4_MABX_B.Operator_cg;
24694 if (tmp_0 > 255U) {
24695 tmp_0 = 255U;
24696 }
24697
24698 L4_MABX_B.DataType_i2 = (uint8_T)tmp_0;
24699
24700 /* End of DataTypeConversion: '<S916>/DataType' */
24701
24702 /* S-Function (sfix_bitop): '<S917>/Operator' */
24703 L4_MABX_B.Operator_m = L4_MABX_B.DataTypeConversion8_p &
24704 L4_MABX_P.Operator_BitMask_gq;
24705
24706 /* DataTypeConversion: '<S917>/DataType' */
24707 tmp_0 = L4_MABX_B.Operator_m;
24708 if (tmp_0 > 65535U) {
24709 tmp_0 = 65535U;
24710 }
24711
24712 L4_MABX_B.DataType_h2 = (uint16_T)tmp_0;
24713
24714 /* End of DataTypeConversion: '<S917>/DataType' */
24715
24716 /* ArithShift: '<S909>/Shift_Arithmetic 3' */
24717 L4_MABX_B.Shift_Arithmetic3_me = (uint16_T)((uint32_T)L4_MABX_B.DataType_h2 >>
24718 8);
24719
24720 /* DataTypeConversion: '<S909>/Data Type Conversion9' */
24721 tmp = L4_MABX_B.Shift_Arithmetic3_me;
24722 if (tmp > 255) {
24723 tmp = 255U;
24724 }
24725
24726 L4_MABX_B.MessageIDMidLowByte = (uint8_T)tmp;
24727
24728 /* End of DataTypeConversion: '<S909>/Data Type Conversion9' */
24729
24730 /* S-Function (sfix_bitop): '<S918>/Operator' */
24731 L4_MABX_B.Operator_p3 = L4_MABX_B.DataTypeConversion8_p &
24732 L4_MABX_P.Operator_BitMask_gn;
24733
24734 /* DataTypeConversion: '<S918>/DataType' */
24735 L4_MABX_B.DataType_im = L4_MABX_B.Operator_p3;
24736
24737 /* ArithShift: '<S909>/Shift_Arithmetic 4' */
24738 L4_MABX_B.Shift_Arithmetic4_k4 = L4_MABX_B.DataType_im >> 16;
24739
24740 /* DataTypeConversion: '<S909>/Data Type Conversion10' */
24741 tmp_0 = L4_MABX_B.Shift_Arithmetic4_k4;
24742 if (tmp_0 > 255U) {
24743 tmp_0 = 255U;
24744 }
24745
24746 L4_MABX_B.MessageIDMidHighByte = (uint8_T)tmp_0;
24747
24748 /* End of DataTypeConversion: '<S909>/Data Type Conversion10' */
24749
24750 /* S-Function (sfix_bitop): '<S919>/Operator' */
24751 L4_MABX_B.Operator_p3v = L4_MABX_B.DataTypeConversion8_p &
24752 L4_MABX_P.Operator_BitMask_mi;
24753
24754 /* DataTypeConversion: '<S919>/DataType' */
24755 L4_MABX_B.DataType_ce = L4_MABX_B.Operator_p3v;
24756
24757 /* ArithShift: '<S909>/Shift_Arithmetic 5' */
24758 L4_MABX_B.Shift_Arithmetic5_j = L4_MABX_B.DataType_ce >> 24;
24759
24760 /* DataTypeConversion: '<S909>/Data Type Conversion11' */
24761 tmp_0 = L4_MABX_B.Shift_Arithmetic5_j;
24762 if (tmp_0 > 255U) {
24763 tmp_0 = 255U;
24764 }
24765
24766 L4_MABX_B.MessageIDHighByte = (uint8_T)tmp_0;
24767
24768 /* End of DataTypeConversion: '<S909>/Data Type Conversion11' */
24769
24770 /* DataTypeConversion: '<S909>/Data Type Conversion13' */
24771 tmp_2 = L4_MABX_B.Unit_Delay;
24772 if (tmp_2 < 256.0) {
24773 if (tmp_2 >= 0.0) {
24774 tmp_1 = (uint8_T)tmp_2;
24775 } else {
24776 tmp_1 = 0U;
24777 }
24778 } else {
24779 tmp_1 = MAX_uint8_T;
24780 }
24781
24782 L4_MABX_B.DataTypeConversion13_p = tmp_1;
24783
24784 /* End of DataTypeConversion: '<S909>/Data Type Conversion13' */
24785
24786 /* S-Function (sfix_bitop): '<S915>/Operator' */
24787 L4_MABX_B.Operator_lay = (uint8_T)(L4_MABX_B.DataTypeConversion13_p &
24788 L4_MABX_P.Operator_BitMask_ch);
24789
24790 /* DataTypeConversion: '<S915>/DataType' */
24791 L4_MABX_B.DataType_ow = L4_MABX_B.Operator_lay;
24792
24793 /* Sum: '<S909>/Add' incorporates:
24794 * Constant: '<S871>/Constant3'
24795 */
24796 L4_MABX_B.Checksum = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
24797 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
24798 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
24799 ((uint32_T)(uint8_T)((uint32_T)L4_MABX_B.DataType_kk +
24800 L4_MABX_P.Constant3_Value_e) + L4_MABX_P.Constant3_Value_e) +
24801 L4_MABX_P.Constant3_Value_e) + L4_MABX_P.Constant3_Value_e) +
24802 L4_MABX_P.Constant3_Value_e) + L4_MABX_P.Constant3_Value_e) +
24803 L4_MABX_B.DataType_i2) + L4_MABX_B.MessageIDMidLowByte) +
24804 L4_MABX_B.MessageIDMidHighByte) + L4_MABX_B.MessageIDHighByte) +
24805 L4_MABX_B.DataType_ow);
24806
24807 /* ArithShift: '<S909>/Shift_Arithmetic 7' */
24808 L4_MABX_B.Shift_Arithmetic7_p = (uint8_T)((uint32_T)L4_MABX_B.Checksum >> 4);
24809
24810 /* Sum: '<S909>/Add1' */
24811 L4_MABX_B.Add1_j = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic7_p +
24812 L4_MABX_B.Checksum);
24813
24814 /* S-Function (sfix_bitop): '<S914>/Operator' */
24815 L4_MABX_B.Operator_iy = (uint8_T)(L4_MABX_B.Add1_j &
24816 L4_MABX_P.Operator_BitMask_md);
24817
24818 /* DataTypeConversion: '<S914>/DataType' */
24819 L4_MABX_B.DataType_k2 = L4_MABX_B.Operator_iy;
24820
24821 /* DataTypeConversion: '<S871>/Data Type Conversion3' */
24822 L4_MABX_B.DataTypeConversion3_b1 = L4_MABX_B.DataType_k2;
24823
24824 /* S-Function (sfix_bitop): '<S908>/Operator' */
24825 L4_MABX_B.Operator_ox = (uint8_T)(L4_MABX_B.DataTypeConversion3_b1 &
24826 L4_MABX_P.Operator_BitMask_o);
24827
24828 /* DataTypeConversion: '<S908>/DataType' */
24829 L4_MABX_B.DataType_be = L4_MABX_B.Operator_ox;
24830
24831 /* ArithShift: '<S871>/Shift_Arithmetic 3' */
24832 L4_MABX_B.Shift_Arithmetic3_m3 = (uint8_T)(L4_MABX_B.DataType_be << 4);
24833
24834 /* S-Function (sfix_bitop): '<S912>/Operator' */
24835 L4_MABX_B.Operator_ou = (uint8_T)(L4_MABX_B.DataType_ge |
24836 L4_MABX_B.Shift_Arithmetic3_m3);
24837
24838 /* DataTypeConversion: '<S912>/DataType' */
24839 L4_MABX_B.DataType_gk = L4_MABX_B.Operator_ou;
24840
24841 /* DataTypeConversion: '<S866>/Data Type Conversion1' incorporates:
24842 * Constant: '<S871>/Constant3'
24843 */
24844 L4_MABX_B.DataTypeConversion1_d[0] = L4_MABX_B.DataType_kk;
24845 L4_MABX_B.DataTypeConversion1_d[1] = L4_MABX_P.Constant3_Value_e;
24846 L4_MABX_B.DataTypeConversion1_d[2] = L4_MABX_P.Constant3_Value_e;
24847 L4_MABX_B.DataTypeConversion1_d[3] = L4_MABX_P.Constant3_Value_e;
24848 L4_MABX_B.DataTypeConversion1_d[4] = L4_MABX_P.Constant3_Value_e;
24849 L4_MABX_B.DataTypeConversion1_d[5] = L4_MABX_P.Constant3_Value_e;
24850 L4_MABX_B.DataTypeConversion1_d[6] = L4_MABX_P.Constant3_Value_e;
24851 L4_MABX_B.DataTypeConversion1_d[7] = L4_MABX_B.DataType_gk;
24852
24853 /* DataTypeConversion: '<S866>/Data Type Conversion' incorporates:
24854 * Constant: '<S838>/CANT_PROPB_XPR_FC_CHANNEL_APV'
24855 */
24856 L4_MABX_B.DataTypeConversion_ga = (uint8_T)
24857 L4_MABX_P.CANT_PROPB_XPR_FC_CHANNEL_APV_V;
24858
24859 /* S-Function (sfix_bitop): '<S881>/Operator' */
24860 L4_MABX_B.Operator_nf = (uint8_T)(L4_MABX_B.DataTypeConversion_ga &
24861 L4_MABX_P.Operator_BitMask_eds);
24862
24863 /* DataTypeConversion: '<S881>/DataType' */
24864 L4_MABX_B.DataType_af = L4_MABX_B.Operator_nf;
24865
24866 /* DataTypeConversion: '<S866>/Data Type Conversion2' */
24867 L4_MABX_B.DataTypeConversion2_ee = (L4_MABX_B.DataType_af != 0);
24868
24869 /* Logic: '<S889>/Operator' */
24870 L4_MABX_B.Operator_hx = (L4_MABX_B.TmpRTBAtOperatorInport1 &&
24871 L4_MABX_B.DataTypeConversion2_ee);
24872
24873 /* DataTypeConversion: '<S889>/DataType' */
24874 L4_MABX_B.DataType_pm = L4_MABX_B.Operator_hx;
24875
24876 /* Outputs for Enabled SubSystem: '<S893>/PropB_XPR_FC' incorporates:
24877 * EnablePort: '<S895>/Enable'
24878 */
24879 if (L4_MABX_B.DataType_pm) {
24880 /* S-Function (rti_commonblock): '<S895>/S-Function1' */
24881 /* This comment workarounds a code generation problem */
24882
24883 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
24884 {
24885 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24886
24887 Float32 delayTime = 0.0;
24888
24889 /* ... Read status and timestamp info (previous message) */
24890 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]);
24891
24892 /* Convert timestamp */
24893 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->processed) {
24894 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp =
24895 rtk_dsts_time_to_simtime_convert
24896 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp);
24897 }
24898
24899 /* Messages with timestamp zero have been received in pause/stop state
24900 and must not be handled.
24901 */
24902 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp > 0.0) {
24903 L4_MABX_B.SFunction1_o1_ge = (real_T)
24904 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->processed;
24905 L4_MABX_B.SFunction1_o2_nn = (real_T)
24906 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp;
24907 L4_MABX_B.SFunction1_o3_o0 = (real_T)
24908 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->deltatime;
24909 L4_MABX_B.SFunction1_o4_e = (real_T)
24910 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->delaytime;
24911 }
24912
24913 /* ... Encode Simulink signals of TX and RM blocks*/
24914 {
24915 rtican_Signal_t CAN_Sgn;
24916
24917 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
24918 /* Add or substract 0.5 in order to round to nearest integer */
24919 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[0] ) +
24920 0.5);
24921 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24922 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24923
24924 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
24925 /* Add or substract 0.5 in order to round to nearest integer */
24926 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[1] ) +
24927 0.5);
24928 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24929 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24930
24931 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
24932 /* Add or substract 0.5 in order to round to nearest integer */
24933 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[2] ) +
24934 0.5);
24935 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24936 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
24937
24938 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
24939 /* Add or substract 0.5 in order to round to nearest integer */
24940 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[3] ) +
24941 0.5);
24942 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24943 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24944
24945 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
24946 /* Add or substract 0.5 in order to round to nearest integer */
24947 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[4] ) +
24948 0.5);
24949 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24950 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24951
24952 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
24953 /* Add or substract 0.5 in order to round to nearest integer */
24954 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[5] ) +
24955 0.5);
24956 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24957 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24958
24959 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
24960 /* Add or substract 0.5 in order to round to nearest integer */
24961 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[6] ) +
24962 0.5);
24963 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24964 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24965
24966 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
24967 /* Add or substract 0.5 in order to round to nearest integer */
24968 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[7] ) +
24969 0.5);
24970 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24971 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24972 }
24973
24974 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24975 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC], 8,
24976 &(CAN_Msg[0]), delayTime);
24977 }
24978 }
24979
24980 /* End of Outputs for SubSystem: '<S893>/PropB_XPR_FC' */
24981
24982 /* S-Function (sfix_bitop): '<S886>/Operator' */
24983 L4_MABX_B.Operator_nl = (uint8_T)(L4_MABX_B.DataTypeConversion_ga &
24984 L4_MABX_P.Operator_BitMask_ci);
24985
24986 /* DataTypeConversion: '<S886>/DataType' */
24987 L4_MABX_B.DataType_g4 = L4_MABX_B.Operator_nl;
24988
24989 /* ArithShift: '<S866>/Shift_Arithmetic 2' */
24990 L4_MABX_B.Shift_Arithmetic2_e = ldexp(L4_MABX_B.DataType_g4, (-3));
24991
24992 /* DataTypeConversion: '<S866>/Data Type Conversion5' */
24993 L4_MABX_B.DataTypeConversion5_io = (L4_MABX_B.Shift_Arithmetic2_e != 0.0);
24994
24995 /* Logic: '<S892>/Operator' */
24996 L4_MABX_B.Operator_dj = (L4_MABX_B.TmpRTBAtOperatorInport1_o &&
24997 L4_MABX_B.DataTypeConversion5_io);
24998
24999 /* DataTypeConversion: '<S892>/DataType' */
25000 L4_MABX_B.DataType_mpp = L4_MABX_B.Operator_dj;
25001
25002 /* Outputs for Enabled SubSystem: '<S894>/PropB_XPR_FC' incorporates:
25003 * EnablePort: '<S896>/Enable'
25004 */
25005 if (L4_MABX_B.DataType_mpp) {
25006 /* S-Function (rti_commonblock): '<S896>/S-Function1' */
25007 /* This comment workarounds a code generation problem */
25008
25009 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
25010 {
25011 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25012
25013 Float32 delayTime = 0.0;
25014
25015 /* ... Read status and timestamp info (previous message) */
25016 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]);
25017
25018 /* Convert timestamp */
25019 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->processed) {
25020 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp =
25021 rtk_dsts_time_to_simtime_convert
25022 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp);
25023 }
25024
25025 /* Messages with timestamp zero have been received in pause/stop state
25026 and must not be handled.
25027 */
25028 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp > 0.0) {
25029 L4_MABX_B.SFunction1_o1_a = (real_T)
25030 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->processed;
25031 L4_MABX_B.SFunction1_o2_g3 = (real_T)
25032 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp;
25033 L4_MABX_B.SFunction1_o3_n = (real_T)
25034 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->deltatime;
25035 L4_MABX_B.SFunction1_o4_lc = (real_T)
25036 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->delaytime;
25037 }
25038
25039 /* ... Encode Simulink signals of TX and RM blocks*/
25040 {
25041 rtican_Signal_t CAN_Sgn;
25042
25043 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
25044 /* Add or substract 0.5 in order to round to nearest integer */
25045 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[0] ) +
25046 0.5);
25047 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25048 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25049
25050 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
25051 /* Add or substract 0.5 in order to round to nearest integer */
25052 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[1] ) +
25053 0.5);
25054 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25055 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25056
25057 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
25058 /* Add or substract 0.5 in order to round to nearest integer */
25059 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[2] ) +
25060 0.5);
25061 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25062 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25063
25064 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
25065 /* Add or substract 0.5 in order to round to nearest integer */
25066 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[3] ) +
25067 0.5);
25068 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25069 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25070
25071 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
25072 /* Add or substract 0.5 in order to round to nearest integer */
25073 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[4] ) +
25074 0.5);
25075 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25076 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25077
25078 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
25079 /* Add or substract 0.5 in order to round to nearest integer */
25080 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[5] ) +
25081 0.5);
25082 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25083 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25084
25085 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
25086 /* Add or substract 0.5 in order to round to nearest integer */
25087 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[6] ) +
25088 0.5);
25089 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25090 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25091
25092 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
25093 /* Add or substract 0.5 in order to round to nearest integer */
25094 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[7] ) +
25095 0.5);
25096 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25097 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25098 }
25099
25100 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25101 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC], 8,
25102 &(CAN_Msg[0]), delayTime);
25103 }
25104 }
25105
25106 /* End of Outputs for SubSystem: '<S894>/PropB_XPR_FC' */
25107
25108 /* S-Function (sfix_bitop): '<S882>/Operator' */
25109 L4_MABX_B.Operator_hr = (uint8_T)(L4_MABX_B.DataTypeConversion_ga &
25110 L4_MABX_P.Operator_BitMask_n);
25111
25112 /* DataTypeConversion: '<S882>/DataType' */
25113 L4_MABX_B.DataType_g1 = L4_MABX_B.Operator_hr;
25114
25115 /* S-Function (sfix_bitop): '<S887>/Operator' */
25116 L4_MABX_B.Operator_no = (uint8_T)(L4_MABX_B.DataTypeConversion_ga &
25117 L4_MABX_P.Operator_BitMask_ftl);
25118
25119 /* DataTypeConversion: '<S887>/DataType' */
25120 L4_MABX_B.DataType_j5 = L4_MABX_B.Operator_no;
25121
25122 /* ArithShift: '<S866>/Shift_Arithmetic 3' */
25123 L4_MABX_B.Shift_Arithmetic3_k = ldexp(L4_MABX_B.DataType_j5, (-4));
25124
25125 /* DataTypeConversion: '<S866>/Data Type Conversion6' */
25126 L4_MABX_B.DataTypeConversion6_i5 = (L4_MABX_B.Shift_Arithmetic3_k != 0.0);
25127
25128 /* Logic: '<S883>/Operator' */
25129 L4_MABX_B.Operator_kb = (L4_MABX_B.TmpRTBAtOperatorInport1_n &&
25130 L4_MABX_B.DataTypeConversion6_i5);
25131
25132 /* DataTypeConversion: '<S883>/DataType' */
25133 L4_MABX_B.DataType_g2 = L4_MABX_B.Operator_kb;
25134
25135 /* S-Function (sfix_bitop): '<S888>/Operator' */
25136 L4_MABX_B.Operator_f3 = (uint8_T)(L4_MABX_B.DataTypeConversion_ga &
25137 L4_MABX_P.Operator_BitMask_j);
25138
25139 /* DataTypeConversion: '<S888>/DataType' */
25140 L4_MABX_B.DataType_ho = L4_MABX_B.Operator_f3;
25141
25142 /* ArithShift: '<S866>/Shift_Arithmetic 4' */
25143 L4_MABX_B.Shift_Arithmetic4_c = ldexp(L4_MABX_B.DataType_ho, (-5));
25144
25145 /* DataTypeConversion: '<S866>/Data Type Conversion7' */
25146 L4_MABX_B.DataTypeConversion7_gb = (L4_MABX_B.Shift_Arithmetic4_c != 0.0);
25147
25148 /* Logic: '<S884>/Operator' */
25149 L4_MABX_B.Operator_fvb = (L4_MABX_B.TmpRTBAtOperatorInport1_j &&
25150 L4_MABX_B.DataTypeConversion7_gb);
25151
25152 /* DataTypeConversion: '<S884>/DataType' */
25153 L4_MABX_B.DataType_jm = L4_MABX_B.Operator_fvb;
25154
25155 /* S-Function (sfix_bitop): '<S885>/Operator' */
25156 L4_MABX_B.Operator_jj = (uint8_T)(L4_MABX_B.DataTypeConversion_ga &
25157 L4_MABX_P.Operator_BitMask_ov);
25158
25159 /* DataTypeConversion: '<S885>/DataType' */
25160 L4_MABX_B.DataType_px = L4_MABX_B.Operator_jj;
25161
25162 /* ArithShift: '<S866>/Shift_Arithmetic ' */
25163 L4_MABX_B.Shift_Arithmetic_p = ldexp(L4_MABX_B.DataType_g1, (-1));
25164
25165 /* DataTypeConversion: '<S866>/Data Type Conversion3' */
25166 L4_MABX_B.DataTypeConversion3_py = (L4_MABX_B.Shift_Arithmetic_p != 0.0);
25167
25168 /* Logic: '<S890>/Operator' */
25169 L4_MABX_B.Operator_cr = (L4_MABX_B.TmpRTBAtOperatorInport1_m &&
25170 L4_MABX_B.DataTypeConversion3_py);
25171
25172 /* DataTypeConversion: '<S890>/DataType' */
25173 L4_MABX_B.DataType_ob = L4_MABX_B.Operator_cr;
25174
25175 /* ArithShift: '<S866>/Shift_Arithmetic 1' */
25176 L4_MABX_B.Shift_Arithmetic1_n = ldexp(L4_MABX_B.DataType_px, (-2));
25177
25178 /* DataTypeConversion: '<S866>/Data Type Conversion4' */
25179 L4_MABX_B.DataTypeConversion4_cv = (L4_MABX_B.Shift_Arithmetic1_n != 0.0);
25180
25181 /* Logic: '<S891>/Operator' */
25182 L4_MABX_B.Operator_hn = (L4_MABX_B.TmpRTBAtOperatorInport1_h &&
25183 L4_MABX_B.DataTypeConversion4_cv);
25184
25185 /* DataTypeConversion: '<S891>/DataType' */
25186 L4_MABX_B.DataType_erc = L4_MABX_B.Operator_hn;
25187
25188 /* DataTypeConversion: '<S923>/Data Type Conversion' */
25189 L4_MABX_B.DataTypeConversion_f = L4_MABX_B.Latitude__b;
25190
25191 /* DataTypeConversion: '<S923>/Data Type Conversion1' */
25192 L4_MABX_B.DataTypeConversion1_c = L4_MABX_B.Longitude__d;
25193
25194 /* DataTypeConversion: '<S872>/Data Type Conversion2' incorporates:
25195 * Constant: '<S838>/enablePosRapidUpdateTX'
25196 */
25197 L4_MABX_B.DataTypeConversion2_m1 = L4_MABX_P.enablePosRapidUpdateTX_Value;
25198
25199 /* Outputs for Enabled SubSystem: '<S923>/Std_PosRapidUpdate_01' incorporates:
25200 * EnablePort: '<S924>/Enable'
25201 */
25202 if (L4_MABX_B.DataTypeConversion2_m1) {
25203 /* S-Function (rti_commonblock): '<S924>/S-Function1' */
25204 /* This comment workarounds a code generation problem */
25205
25206 /* dSPACE RTICAN TX Message Block: "Std_PosRapidUpdate_01" Id:3 */
25207 {
25208 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25209
25210 Float32 delayTime = 0.0;
25211
25212 /* ... Read status and timestamp info (previous message) */
25213 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]);
25214
25215 /* Convert timestamp */
25216 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->processed) {
25217 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp =
25218 rtk_dsts_time_to_simtime_convert
25219 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp);
25220 }
25221
25222 /* Messages with timestamp zero have been received in pause/stop state
25223 and must not be handled.
25224 */
25225 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp > 0.0) {
25226 L4_MABX_B.SFunction1_o1_fh = (real_T)
25227 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->processed;
25228 L4_MABX_B.SFunction1_o2_gp = (real_T)
25229 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp;
25230 L4_MABX_B.SFunction1_o3_h = (real_T)
25231 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->deltatime;
25232 L4_MABX_B.SFunction1_o4_hp = (real_T)
25233 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->delaytime;
25234 }
25235
25236 /* ... Encode Simulink signals of TX and RM blocks*/
25237 {
25238 rtican_Signal_t CAN_Sgn;
25239
25240 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
25241 /* Add or substract 0.5 in order to round to nearest integer */
25242 if (( L4_MABX_B.DataTypeConversion_f - ( 0 ) ) / 1.0E-7 < -0.5)
25243 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion_f - ( 0 ) )
25244 / 1.0E-7 - 0.5);
25245 else
25246 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion_f - ( 0 ) )
25247 / 1.0E-7 + 0.5);
25248 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25249 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
25250 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte2;
25251 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte3;
25252
25253 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
25254 /* Add or substract 0.5 in order to round to nearest integer */
25255 if (( L4_MABX_B.DataTypeConversion1_c - ( 0 ) ) / 1.0E-7 < -0.5)
25256 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion1_c - ( 0 )
25257 ) / 1.0E-7 - 0.5);
25258 else
25259 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion1_c - ( 0 )
25260 ) / 1.0E-7 + 0.5);
25261 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25262 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
25263 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte2;
25264 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte3;
25265 }
25266
25267 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25268 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3], 8, &(CAN_Msg[0]),
25269 delayTime);
25270 }
25271 }
25272
25273 /* End of Outputs for SubSystem: '<S923>/Std_PosRapidUpdate_01' */
25274
25275 /* Outputs for Enabled SubSystem: '<S874>/CCVS1_00' incorporates:
25276 * EnablePort: '<S876>/Enable'
25277 */
25278 /* Outputs for Enabled SubSystem: '<S873>/CCVS1_00' incorporates:
25279 * EnablePort: '<S875>/Enable'
25280 */
25281 /* Constant: '<S864>/Enable_TX_CCVS1_00' */
25282 if (L4_MABX_P.Enable_TX_CCVS1_00_Value) {
25283 /* S-Function (rti_commonblock): '<S875>/S-Function1' */
25284 /* This comment workarounds a code generation problem */
25285
25286 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:419361024 */
25287 {
25288 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25289
25290 Float32 delayTime = 0.0;
25291
25292 /* ... Read status and timestamp info (previous message) */
25293 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]);
25294
25295 /* Convert timestamp */
25296 if (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->processed) {
25297 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp =
25298 rtk_dsts_time_to_simtime_convert
25299 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp);
25300 }
25301
25302 /* Messages with timestamp zero have been received in pause/stop state
25303 and must not be handled.
25304 */
25305 if (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp > 0.0) {
25306 L4_MABX_B.SFunction1_o1_p = (real_T)
25307 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->processed;
25308 L4_MABX_B.SFunction1_o2_pl = (real_T)
25309 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp;
25310 L4_MABX_B.SFunction1_o3_eq = (real_T)
25311 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->deltatime;
25312 L4_MABX_B.SFunction1_o4_du = (real_T)
25313 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->delaytime;
25314 }
25315
25316 /* ... Encode Simulink signals of TX and RM blocks*/
25317 {
25318 rtican_Signal_t CAN_Sgn;
25319
25320 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
25321 /* Add or substract 0.5 in order to round to nearest integer */
25322 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch_h ) + 0.5);
25323 CAN_Sgn.UnsignedSgn &= 0x00000003;
25324 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25325
25326 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
25327 /* Add or substract 0.5 in order to round to nearest integer */
25328 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch_j ) + 0.5);
25329 CAN_Sgn.UnsignedSgn &= 0x00000003;
25330 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25331 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25332
25333 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
25334 /* Add or substract 0.5 in order to round to nearest integer */
25335 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch_j ) +
25336 0.5);
25337 CAN_Sgn.UnsignedSgn &= 0x00000003;
25338 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25339 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25340
25341 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
25342 /* Add or substract 0.5 in order to round to nearest integer */
25343 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq_g )
25344 + 0.5);
25345 CAN_Sgn.UnsignedSgn &= 0x00000003;
25346 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25347 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25348
25349 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
25350 /* Add or substract 0.5 in order to round to nearest integer */
25351 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_id -
25352 ( 0 ) ) / 0.00390625 + 0.5);
25353 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25354 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25355 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
25356
25357 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
25358 /* Add or substract 0.5 in order to round to nearest integer */
25359 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive_l ) + 0.5);
25360 CAN_Sgn.UnsignedSgn &= 0x00000003;
25361 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25362
25363 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
25364 /* Add or substract 0.5 in order to round to nearest integer */
25365 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_er )
25366 + 0.5);
25367 CAN_Sgn.UnsignedSgn &= 0x00000003;
25368 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25369 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25370
25371 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
25372 /* Add or substract 0.5 in order to round to nearest integer */
25373 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_jm ) + 0.5);
25374 CAN_Sgn.UnsignedSgn &= 0x00000003;
25375 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25376 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25377
25378 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
25379 /* Add or substract 0.5 in order to round to nearest integer */
25380 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch_i ) + 0.5);
25381 CAN_Sgn.UnsignedSgn &= 0x00000003;
25382 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25383 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25384
25385 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
25386 /* Add or substract 0.5 in order to round to nearest integer */
25387 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch_c ) +
25388 0.5);
25389 CAN_Sgn.UnsignedSgn &= 0x00000003;
25390 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25391
25392 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
25393 /* Add or substract 0.5 in order to round to nearest integer */
25394 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch_m ) +
25395 0.5);
25396 CAN_Sgn.UnsignedSgn &= 0x00000003;
25397 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25398 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25399
25400 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
25401 /* Add or substract 0.5 in order to round to nearest integer */
25402 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch_b ) +
25403 0.5);
25404 CAN_Sgn.UnsignedSgn &= 0x00000003;
25405 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25406 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25407
25408 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
25409 /* Add or substract 0.5 in order to round to nearest integer */
25410 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlAccelerateSwitch_p
25411 ) + 0.5);
25412 CAN_Sgn.UnsignedSgn &= 0x00000003;
25413 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25414 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25415
25416 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
25417 /* Add or substract 0.5 in order to round to nearest integer */
25418 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed_e ) + 0.5);
25419 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25420 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25421
25422 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
25423 /* Add or substract 0.5 in order to round to nearest integer */
25424 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState_d ) + 0.5);
25425 CAN_Sgn.UnsignedSgn &= 0x0000001F;
25426 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25427
25428 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
25429 /* Add or substract 0.5 in order to round to nearest integer */
25430 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates_c ) + 0.5);
25431 CAN_Sgn.UnsignedSgn &= 0x00000007;
25432 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
25433 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25434
25435 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
25436 /* Add or substract 0.5 in order to round to nearest integer */
25437 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch_o ) +
25438 0.5);
25439 CAN_Sgn.UnsignedSgn &= 0x00000003;
25440 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25441
25442 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
25443 /* Add or substract 0.5 in order to round to nearest integer */
25444 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch_i ) +
25445 0.5);
25446 CAN_Sgn.UnsignedSgn &= 0x00000003;
25447 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25448 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25449
25450 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
25451 /* Add or substract 0.5 in order to round to nearest integer */
25452 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch_m ) + 0.5);
25453 CAN_Sgn.UnsignedSgn &= 0x00000003;
25454 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25455 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25456
25457 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
25458 /* Add or substract 0.5 in order to round to nearest integer */
25459 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch_g )
25460 + 0.5);
25461 CAN_Sgn.UnsignedSgn &= 0x00000003;
25462 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25463 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25464 }
25465
25466 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25467 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100], 8,
25468 &(CAN_Msg[0]), delayTime);
25469 }
25470
25471 /* S-Function (rti_commonblock): '<S876>/S-Function1' */
25472 /* This comment workarounds a code generation problem */
25473
25474 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:218034432 */
25475 {
25476 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25477
25478 Float32 delayTime = 0.0;
25479
25480 /* ... Read status and timestamp info (previous message) */
25481 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]);
25482
25483 /* Convert timestamp */
25484 if (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->processed) {
25485 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp =
25486 rtk_dsts_time_to_simtime_convert
25487 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp);
25488 }
25489
25490 /* Messages with timestamp zero have been received in pause/stop state
25491 and must not be handled.
25492 */
25493 if (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp > 0.0) {
25494 L4_MABX_B.SFunction1_o1_n = (real_T)
25495 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->processed;
25496 L4_MABX_B.SFunction1_o2_lt = (real_T)
25497 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp;
25498 L4_MABX_B.SFunction1_o3_lt = (real_T)
25499 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->deltatime;
25500 L4_MABX_B.SFunction1_o4_d1 = (real_T)
25501 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->delaytime;
25502 }
25503
25504 /* ... Encode Simulink signals of TX and RM blocks*/
25505 {
25506 rtican_Signal_t CAN_Sgn;
25507
25508 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
25509 /* Add or substract 0.5 in order to round to nearest integer */
25510 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch_hx ) +
25511 0.5);
25512 CAN_Sgn.UnsignedSgn &= 0x00000003;
25513 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25514
25515 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
25516 /* Add or substract 0.5 in order to round to nearest integer */
25517 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch_ji ) +
25518 0.5);
25519 CAN_Sgn.UnsignedSgn &= 0x00000003;
25520 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25521 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25522
25523 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
25524 /* Add or substract 0.5 in order to round to nearest integer */
25525 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch_ji ) +
25526 0.5);
25527 CAN_Sgn.UnsignedSgn &= 0x00000003;
25528 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25529 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25530
25531 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
25532 /* Add or substract 0.5 in order to round to nearest integer */
25533 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq_gm
25534 ) + 0.5);
25535 CAN_Sgn.UnsignedSgn &= 0x00000003;
25536 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25537 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25538
25539 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
25540 /* Add or substract 0.5 in order to round to nearest integer */
25541 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_idf -
25542 ( 0 ) ) / 0.00390625 + 0.5);
25543 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25544 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25545 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
25546
25547 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
25548 /* Add or substract 0.5 in order to round to nearest integer */
25549 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive_lv ) + 0.5);
25550 CAN_Sgn.UnsignedSgn &= 0x00000003;
25551 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25552
25553 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
25554 /* Add or substract 0.5 in order to round to nearest integer */
25555 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_ere )
25556 + 0.5);
25557 CAN_Sgn.UnsignedSgn &= 0x00000003;
25558 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25559 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25560
25561 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
25562 /* Add or substract 0.5 in order to round to nearest integer */
25563 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_jmh ) + 0.5);
25564 CAN_Sgn.UnsignedSgn &= 0x00000003;
25565 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25566 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25567
25568 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
25569 /* Add or substract 0.5 in order to round to nearest integer */
25570 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch_iz ) + 0.5);
25571 CAN_Sgn.UnsignedSgn &= 0x00000003;
25572 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25573 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25574
25575 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
25576 /* Add or substract 0.5 in order to round to nearest integer */
25577 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch_c5 ) +
25578 0.5);
25579 CAN_Sgn.UnsignedSgn &= 0x00000003;
25580 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25581
25582 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
25583 /* Add or substract 0.5 in order to round to nearest integer */
25584 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch_ma ) +
25585 0.5);
25586 CAN_Sgn.UnsignedSgn &= 0x00000003;
25587 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25588 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25589
25590 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
25591 /* Add or substract 0.5 in order to round to nearest integer */
25592 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch_bk )
25593 + 0.5);
25594 CAN_Sgn.UnsignedSgn &= 0x00000003;
25595 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25596 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25597
25598 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
25599 /* Add or substract 0.5 in order to round to nearest integer */
25600 CAN_Sgn.UnsignedSgn = (UInt32)
25601 (( L4_MABX_B.CruiseCtrlAccelerateSwitch_pz ) + 0.5);
25602 CAN_Sgn.UnsignedSgn &= 0x00000003;
25603 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25604 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25605
25606 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
25607 /* Add or substract 0.5 in order to round to nearest integer */
25608 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed_ex ) +
25609 0.5);
25610 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25611 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25612
25613 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
25614 /* Add or substract 0.5 in order to round to nearest integer */
25615 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState_dy ) + 0.5);
25616 CAN_Sgn.UnsignedSgn &= 0x0000001F;
25617 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25618
25619 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
25620 /* Add or substract 0.5 in order to round to nearest integer */
25621 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates_c1 ) + 0.5);
25622 CAN_Sgn.UnsignedSgn &= 0x00000007;
25623 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
25624 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25625
25626 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
25627 /* Add or substract 0.5 in order to round to nearest integer */
25628 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch_on )
25629 + 0.5);
25630 CAN_Sgn.UnsignedSgn &= 0x00000003;
25631 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25632
25633 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
25634 /* Add or substract 0.5 in order to round to nearest integer */
25635 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch_ib )
25636 + 0.5);
25637 CAN_Sgn.UnsignedSgn &= 0x00000003;
25638 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25639 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25640
25641 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
25642 /* Add or substract 0.5 in order to round to nearest integer */
25643 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch_m1 ) + 0.5);
25644 CAN_Sgn.UnsignedSgn &= 0x00000003;
25645 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25646 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25647
25648 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
25649 /* Add or substract 0.5 in order to round to nearest integer */
25650 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch_g5
25651 ) + 0.5);
25652 CAN_Sgn.UnsignedSgn &= 0x00000003;
25653 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25654 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25655 }
25656
25657 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25658 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100], 8,
25659 &(CAN_Msg[0]), delayTime);
25660 }
25661 }
25662
25663 /* End of Constant: '<S864>/Enable_TX_CCVS1_00' */
25664 /* End of Outputs for SubSystem: '<S873>/CCVS1_00' */
25665 /* End of Outputs for SubSystem: '<S874>/CCVS1_00' */
25666
25667 /* DataTypeConversion: '<S870>/Data Type Conversion' incorporates:
25668 * Constant: '<S869>/Constant'
25669 */
25670 L4_MABX_B.DataTypeConversion_nd = L4_MABX_P.Constant_Value_fr;
25671
25672 /* DataTypeConversion: '<S870>/Data Type Conversion1' */
25673 L4_MABX_B.DataTypeConversion1_od = (uint16_T)L4_MABX_B.DataTypeConversion_nd;
25674
25675 /* S-Function (sfix_bitop): '<S901>/Operator' */
25676 L4_MABX_B.Operator_m1 = (uint16_T)(L4_MABX_B.DataTypeConversion1_od &
25677 L4_MABX_P.Operator_BitMask_k2n);
25678
25679 /* DataTypeConversion: '<S901>/DataType' */
25680 tmp = L4_MABX_B.Operator_m1;
25681 if (tmp > 255) {
25682 tmp = 255U;
25683 }
25684
25685 L4_MABX_B.DataType_oc = (uint8_T)tmp;
25686
25687 /* End of DataTypeConversion: '<S901>/DataType' */
25688
25689 /* S-Function (sfix_bitop): '<S902>/Operator' */
25690 L4_MABX_B.Operator_pj = (uint16_T)(L4_MABX_B.DataTypeConversion1_od &
25691 L4_MABX_P.Operator_BitMask_jk);
25692
25693 /* DataTypeConversion: '<S902>/DataType' */
25694 L4_MABX_B.DataType_mw = L4_MABX_B.Operator_pj;
25695
25696 /* ArithShift: '<S870>/Shift_Arithmetic ' */
25697 L4_MABX_B.Shift_Arithmetic_d = (uint16_T)((uint32_T)L4_MABX_B.DataType_mw >> 8);
25698
25699 /* DataTypeConversion: '<S870>/Data Type Conversion2' */
25700 tmp = L4_MABX_B.Shift_Arithmetic_d;
25701 if (tmp > 255) {
25702 tmp = 255U;
25703 }
25704
25705 L4_MABX_B.DataTypeConversion2_i0 = (uint8_T)tmp;
25706
25707 /* End of DataTypeConversion: '<S870>/Data Type Conversion2' */
25708
25709 /* DataTypeConversion: '<S865>/Data Type Conversion1' incorporates:
25710 * Constant: '<S870>/Constant'
25711 */
25712 L4_MABX_B.DataTypeConversion1_j[0] = L4_MABX_P.Constant_Value_e5;
25713 L4_MABX_B.DataTypeConversion1_j[1] = L4_MABX_P.Constant_Value_e5;
25714 L4_MABX_B.DataTypeConversion1_j[2] = L4_MABX_P.Constant_Value_e5;
25715 L4_MABX_B.DataTypeConversion1_j[3] = L4_MABX_P.Constant_Value_e5;
25716 L4_MABX_B.DataTypeConversion1_j[4] = L4_MABX_P.Constant_Value_e5;
25717 L4_MABX_B.DataTypeConversion1_j[5] = L4_MABX_P.Constant_Value_e5;
25718 L4_MABX_B.DataTypeConversion1_j[6] = L4_MABX_B.DataType_oc;
25719 L4_MABX_B.DataTypeConversion1_j[7] = L4_MABX_B.DataTypeConversion2_i0;
25720
25721 /* RateTransition: '<S877>/TmpRTBAtHiddenBuf_InsertedFor_PropB_REAX_5_E4_at_inport_10Inport1' */
25722 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_P = L4_MABX_B.Operator_iv;
25723
25724 /* Outputs for Enabled SubSystem: '<S877>/PropB_REAX_5_E4' incorporates:
25725 * EnablePort: '<S879>/Enable'
25726 */
25727 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_P) {
25728 /* S-Function (rti_commonblock): '<S879>/S-Function1' incorporates:
25729 * Constant: '<S877>/Constant'
25730 * Constant: '<S877>/Constant1'
25731 */
25732 /* This comment workarounds a code generation problem */
25733
25734 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
25735 {
25736 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25737 0x00 };
25738
25739 Float32 delayTime = 0.0;
25740
25741 /* link this pointer to CAN_Msg for use in initialize_io_units() */
25742 CANTP1_PTR_M1_C2_XTD_0x18FFFAE4 = &(CAN_Msg[0]);
25743
25744 /* ... perform loop-back if required */
25745 if (L4_MABX_P.Constant1_Value_nw > 0.5) {
25746 /* ... updating the used tx-clientbuffer */
25747 can_tp1_msg_update_all( CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->module,
25748 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->queue );
25749
25750 /* ... Read status and timestamp info perform loop-back (previous message) */
25751 can_tp1_tx_msg_read_loopback(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4,
25752 8, // datalen
25753 &(CAN_Msg[0]),
25754 CANTP1_RX_SPMSG_M1_C2_XTD);
25755
25756 /* Convert timestamp */
25757 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25758 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25759 rtk_dsts_time_to_simtime_convert
25760 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25761 }
25762 } else {
25763 /* ... Read status and timestamp info (previous message) */
25764 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4);
25765
25766 /* Convert timestamp */
25767 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25768 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25769 rtk_dsts_time_to_simtime_convert
25770 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25771 }
25772 }
25773
25774 /* Messages with timestamp zero have been received in pause/stop state
25775 and must not be handled.
25776 */
25777 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp > 0.0) {
25778 L4_MABX_B.SFunction1_o1_iz = (real_T)
25779 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed;
25780 L4_MABX_B.SFunction1_o2_kw = (real_T)
25781 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp;
25782 L4_MABX_B.SFunction1_o3_e = (real_T)
25783 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->deltatime;
25784 L4_MABX_B.SFunction1_o4_li = (real_T)
25785 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->delaytime;
25786 }
25787
25788 /* ... Encode Simulink signals of TX and RM blocks*/
25789 {
25790 rtican_Signal_t CAN_Sgn;
25791 UInt32 i;
25792
25793 /* Initialize the static message data to zero */
25794 for (i=0; i<8; i++ )
25795 CAN_Msg[i] = 0;
25796
25797 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
25798 /* Add or substract 0.5 in order to round to nearest integer */
25799 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[0] ) +
25800 0.5);
25801 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25802 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25803
25804 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
25805 /* Add or substract 0.5 in order to round to nearest integer */
25806 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[1] ) +
25807 0.5);
25808 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25809 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25810
25811 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
25812 /* Add or substract 0.5 in order to round to nearest integer */
25813 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[2] ) +
25814 0.5);
25815 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25816 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25817
25818 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
25819 /* Add or substract 0.5 in order to round to nearest integer */
25820 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[3] ) +
25821 0.5);
25822 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25823 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25824
25825 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
25826 /* Add or substract 0.5 in order to round to nearest integer */
25827 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[4] ) +
25828 0.5);
25829 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25830 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25831
25832 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
25833 /* Add or substract 0.5 in order to round to nearest integer */
25834 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[5] ) +
25835 0.5);
25836 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25837 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25838
25839 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
25840 /* Add or substract 0.5 in order to round to nearest integer */
25841 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[6] ) +
25842 0.5);
25843 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25844 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25845
25846 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
25847 /* Add or substract 0.5 in order to round to nearest integer */
25848 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[7] ) +
25849 0.5);
25850 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25851 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25852 }
25853
25854 delayTime = (Float32) L4_MABX_P.Constant_Value_j / (1700);
25855
25856 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25857 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFFAE4], 8,
25858 &(CAN_Msg[0]), delayTime);
25859 }
25860 }
25861
25862 /* End of Outputs for SubSystem: '<S877>/PropB_REAX_5_E4' */
25863
25864 /* RateTransition: '<S878>/TmpRTBAtHiddenBuf_InsertedFor_PropB_REAX_5_E4_at_inport_10Inport1' */
25865 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_f = L4_MABX_B.EnablePropB_ReAX_CAN6;
25866
25867 /* Outputs for Enabled SubSystem: '<S878>/PropB_REAX_5_E4' incorporates:
25868 * EnablePort: '<S880>/Enable'
25869 */
25870 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_f) {
25871 /* S-Function (rti_commonblock): '<S880>/S-Function1' incorporates:
25872 * Constant: '<S878>/Constant'
25873 * Constant: '<S878>/Constant1'
25874 */
25875 /* This comment workarounds a code generation problem */
25876
25877 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
25878 {
25879 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25880 0x00 };
25881
25882 Float32 delayTime = 0.0;
25883
25884 /* link this pointer to CAN_Msg for use in initialize_io_units() */
25885 CANTP1_PTR_M3_C2_XTD_0x18FFFAE4 = &(CAN_Msg[0]);
25886
25887 /* ... perform loop-back if required */
25888 if (L4_MABX_P.Constant1_Value_kh > 0.5) {
25889 /* ... updating the used tx-clientbuffer */
25890 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->module,
25891 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->queue );
25892
25893 /* ... Read status and timestamp info perform loop-back (previous message) */
25894 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4,
25895 8, // datalen
25896 &(CAN_Msg[0]),
25897 CANTP1_RX_SPMSG_M3_C2_XTD);
25898
25899 /* Convert timestamp */
25900 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25901 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25902 rtk_dsts_time_to_simtime_convert
25903 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25904 }
25905 } else {
25906 /* ... Read status and timestamp info (previous message) */
25907 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4);
25908
25909 /* Convert timestamp */
25910 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25911 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25912 rtk_dsts_time_to_simtime_convert
25913 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25914 }
25915 }
25916
25917 /* Messages with timestamp zero have been received in pause/stop state
25918 and must not be handled.
25919 */
25920 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp > 0.0) {
25921 L4_MABX_B.SFunction1_o1_cu = (real_T)
25922 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed;
25923 L4_MABX_B.SFunction1_o2_hn = (real_T)
25924 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp;
25925 L4_MABX_B.SFunction1_o3_k = (real_T)
25926 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->deltatime;
25927 L4_MABX_B.SFunction1_o4_lw = (real_T)
25928 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->delaytime;
25929 }
25930
25931 /* ... Encode Simulink signals of TX and RM blocks*/
25932 {
25933 rtican_Signal_t CAN_Sgn;
25934 UInt32 i;
25935
25936 /* Initialize the static message data to zero */
25937 for (i=0; i<8; i++ )
25938 CAN_Msg[i] = 0;
25939
25940 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
25941 /* Add or substract 0.5 in order to round to nearest integer */
25942 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[0] ) +
25943 0.5);
25944 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25945 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25946
25947 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
25948 /* Add or substract 0.5 in order to round to nearest integer */
25949 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[1] ) +
25950 0.5);
25951 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25952 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25953
25954 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
25955 /* Add or substract 0.5 in order to round to nearest integer */
25956 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[2] ) +
25957 0.5);
25958 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25959 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25960
25961 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
25962 /* Add or substract 0.5 in order to round to nearest integer */
25963 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[3] ) +
25964 0.5);
25965 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25966 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25967
25968 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
25969 /* Add or substract 0.5 in order to round to nearest integer */
25970 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[4] ) +
25971 0.5);
25972 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25973 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25974
25975 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
25976 /* Add or substract 0.5 in order to round to nearest integer */
25977 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[5] ) +
25978 0.5);
25979 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25980 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25981
25982 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
25983 /* Add or substract 0.5 in order to round to nearest integer */
25984 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[6] ) +
25985 0.5);
25986 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25987 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25988
25989 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
25990 /* Add or substract 0.5 in order to round to nearest integer */
25991 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_j[7] ) +
25992 0.5);
25993 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25994 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25995 }
25996
25997 delayTime = (Float32) L4_MABX_P.Constant_Value_kq / (1700);
25998
25999 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
26000 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFFAE4], 8,
26001 &(CAN_Msg[0]), delayTime);
26002 }
26003 }
26004
26005 /* End of Outputs for SubSystem: '<S878>/PropB_REAX_5_E4' */
26006
26007 /* DataTypeConversion: '<S897>/Data Type Conversion' */
26008 L4_MABX_B.DataTypeConversion_fz = L4_MABX_B.SID_c;
26009
26010 /* DataTypeConversion: '<S897>/Data Type Conversion1' */
26011 L4_MABX_B.DataTypeConversion1_h = L4_MABX_B.COGReference_c;
26012
26013 /* DataTypeConversion: '<S897>/Data Type Conversion2' */
26014 L4_MABX_B.DataTypeConversion2_k = L4_MABX_B.CourseOverGround_p;
26015
26016 /* DataTypeConversion: '<S897>/Data Type Conversion3' */
26017 L4_MABX_B.DataTypeConversion3_f = L4_MABX_B.SpeedOverGround_j;
26018
26019 /* DataTypeConversion: '<S867>/Data Type Conversion2' incorporates:
26020 * Constant: '<S838>/enableCOGSRapidUpdateTX'
26021 */
26022 L4_MABX_B.DataTypeConversion2_np = L4_MABX_P.enableCOGSRapidUpdateTX_Value;
26023
26024 /* Outputs for Enabled SubSystem: '<S897>/Std_COGSOGRapidUpdate_01' incorporates:
26025 * EnablePort: '<S898>/Enable'
26026 */
26027 if (L4_MABX_B.DataTypeConversion2_np) {
26028 /* S-Function (rti_commonblock): '<S898>/S-Function1' incorporates:
26029 * Constant: '<S897>/Constant'
26030 * Constant: '<S897>/Constant1'
26031 */
26032 /* This comment workarounds a code generation problem */
26033
26034 /* dSPACE RTICAN TX Message Block: "Std_COGSOGRapidUpdate_01" Id:7 */
26035 {
26036 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
26037 0x00 };
26038
26039 Float32 delayTime = 0.0;
26040
26041 /* link this pointer to CAN_Msg for use in initialize_io_units() */
26042 CANTP1_PTR_M3_C2_STD_0x7 = &(CAN_Msg[0]);
26043
26044 /* ... perform loop-back if required */
26045 if (L4_MABX_P.Constant1_Value_j1 > 0.5) {
26046 /* ... updating the used tx-clientbuffer */
26047 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_STD_0X7->module,
26048 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->queue );
26049
26050 /* ... Read status and timestamp info perform loop-back (previous message) */
26051 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_STD_0X7,
26052 8, // datalen
26053 &(CAN_Msg[0]),
26054 CANTP1_RX_SPMSG_M3_C2_STD);
26055
26056 /* Convert timestamp */
26057 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed) {
26058 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp =
26059 rtk_dsts_time_to_simtime_convert
26060 (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp);
26061 }
26062 } else {
26063 /* ... Read status and timestamp info (previous message) */
26064 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_STD_0X7);
26065
26066 /* Convert timestamp */
26067 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed) {
26068 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp =
26069 rtk_dsts_time_to_simtime_convert
26070 (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp);
26071 }
26072 }
26073
26074 /* Messages with timestamp zero have been received in pause/stop state
26075 and must not be handled.
26076 */
26077 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp > 0.0) {
26078 L4_MABX_B.SFunction1_o1_hs = (real_T)
26079 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed;
26080 L4_MABX_B.SFunction1_o2_j = (real_T)
26081 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp;
26082 L4_MABX_B.SFunction1_o3_d = (real_T)
26083 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->deltatime;
26084 L4_MABX_B.SFunction1_o4_n = (real_T)
26085 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->delaytime;
26086 }
26087
26088 /* ... Encode Simulink signals of TX and RM blocks*/
26089 {
26090 rtican_Signal_t CAN_Sgn;
26091 UInt32 i;
26092
26093 /* Initialize the static message data to zero */
26094 for (i=0; i<8; i++ )
26095 CAN_Msg[i] = 0;
26096
26097 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
26098 /* Add or substract 0.5 in order to round to nearest integer */
26099 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_fz ) +
26100 0.5);
26101 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26102 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26103
26104 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
26105 /* Add or substract 0.5 in order to round to nearest integer */
26106 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_h ) +
26107 0.5);
26108 CAN_Sgn.UnsignedSgn &= 0x00000003;
26109 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
26110
26111 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
26112 /* Add or substract 0.5 in order to round to nearest integer */
26113 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_k - ( 0 )
26114 ) / 0.0001 + 0.5);
26115 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
26116 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26117 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
26118
26119 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
26120 /* Add or substract 0.5 in order to round to nearest integer */
26121 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_f - ( 0 )
26122 ) / 0.01 + 0.5);
26123 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
26124 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
26125 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
26126 }
26127
26128 /* mask unused bits with '1' */
26129 CAN_Msg[1] |= 0xFC;
26130 CAN_Msg[6] |= 0xFF;
26131 CAN_Msg[7] |= 0xFF;
26132 delayTime = (Float32) L4_MABX_P.Constant_Value_a0 / (2000);
26133
26134 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
26135 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X7], 8, &(CAN_Msg[0]),
26136 delayTime);
26137 }
26138 }
26139
26140 /* End of Outputs for SubSystem: '<S897>/Std_COGSOGRapidUpdate_01' */
26141
26142 /* DataTypeConversion: '<S868>/Data Type Conversion2' incorporates:
26143 * Constant: '<S838>/enableEBC1_8B_TX'
26144 */
26145 L4_MABX_B.DataTypeConversion2_fh = L4_MABX_P.enableEBC1_8B_TX_Value;
26146
26147 /* Outputs for Enabled SubSystem: '<S899>/EBC1_TX' incorporates:
26148 * EnablePort: '<S900>/Enable'
26149 */
26150 if (L4_MABX_B.DataTypeConversion2_fh) {
26151 /* S-Function (rti_commonblock): '<S900>/S-Function1' */
26152 /* This comment workarounds a code generation problem */
26153
26154 /* dSPACE RTICAN TX Message Block: "EBC1_TX" Id:418382219 */
26155 {
26156 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
26157
26158 Float32 delayTime = 0.0;
26159
26160 /* ... Read status and timestamp info (previous message) */
26161 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]);
26162
26163 /* Convert timestamp */
26164 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->processed) {
26165 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp =
26166 rtk_dsts_time_to_simtime_convert
26167 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp);
26168 }
26169
26170 /* Messages with timestamp zero have been received in pause/stop state
26171 and must not be handled.
26172 */
26173 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp > 0.0) {
26174 L4_MABX_B.SFunction1_o1_ga = (real_T)
26175 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->processed;
26176 L4_MABX_B.SFunction1_o2_bp = (real_T)
26177 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp;
26178 L4_MABX_B.SFunction1_o3_gn = (real_T)
26179 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->deltatime;
26180 L4_MABX_B.SFunction1_o4_dg = (real_T)
26181 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->delaytime;
26182 }
26183
26184 /* ... Encode Simulink signals of TX and RM blocks*/
26185 {
26186 rtican_Signal_t CAN_Sgn;
26187
26188 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
26189 /* Add or substract 0.5 in order to round to nearest integer */
26190 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASREngCtrlActive ) + 0.5);
26191 CAN_Sgn.UnsignedSgn &= 0x00000003;
26192 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26193
26194 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
26195 /* Add or substract 0.5 in order to round to nearest integer */
26196 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASRBrakeCtrlActive ) + 0.5);
26197 CAN_Sgn.UnsignedSgn &= 0x00000003;
26198 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26199 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26200
26201 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
26202 /* Add or substract 0.5 in order to round to nearest integer */
26203 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AntiLockBrakingActive ) +
26204 0.5);
26205 CAN_Sgn.UnsignedSgn &= 0x00000003;
26206 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26207 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26208
26209 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
26210 /* Add or substract 0.5 in order to round to nearest integer */
26211 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EBSBrakeSwitch_e ) + 0.5);
26212 CAN_Sgn.UnsignedSgn &= 0x00000003;
26213 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26214 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26215
26216 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
26217 /* Add or substract 0.5 in order to round to nearest integer */
26218 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakePedalPos - ( 0 ) ) /
26219 0.4 + 0.5);
26220 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26221 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
26222
26223 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
26224 /* Add or substract 0.5 in order to round to nearest integer */
26225 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABSOffroadSwitch ) + 0.5);
26226 CAN_Sgn.UnsignedSgn &= 0x00000003;
26227 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26228
26229 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
26230 /* Add or substract 0.5 in order to round to nearest integer */
26231 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASROffroadSwitch ) + 0.5);
26232 CAN_Sgn.UnsignedSgn &= 0x00000003;
26233 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26234 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26235
26236 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
26237 /* Add or substract 0.5 in order to round to nearest integer */
26238 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASRHillHolderSwitch ) + 0.5);
26239 CAN_Sgn.UnsignedSgn &= 0x00000003;
26240 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26241 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26242
26243 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
26244 /* Add or substract 0.5 in order to round to nearest integer */
26245 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TractionCtrlOverrideSwitch )
26246 + 0.5);
26247 CAN_Sgn.UnsignedSgn &= 0x00000003;
26248 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26249 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26250
26251 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
26252 /* Add or substract 0.5 in order to round to nearest integer */
26253 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AccelInterlockSwitch ) + 0.5);
26254 CAN_Sgn.UnsignedSgn &= 0x00000003;
26255 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26256
26257 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
26258 /* Add or substract 0.5 in order to round to nearest integer */
26259 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngDerateSwitch ) + 0.5);
26260 CAN_Sgn.UnsignedSgn &= 0x00000003;
26261 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26262 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26263
26264 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
26265 /* Add or substract 0.5 in order to round to nearest integer */
26266 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngAuxShutdownSwitch ) + 0.5);
26267 CAN_Sgn.UnsignedSgn &= 0x00000003;
26268 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26269 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26270
26271 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
26272 /* Add or substract 0.5 in order to round to nearest integer */
26273 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.RemoteAccelEnableSwitch ) +
26274 0.5);
26275 CAN_Sgn.UnsignedSgn &= 0x00000003;
26276 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26277 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26278
26279 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
26280 /* Add or substract 0.5 in order to round to nearest integer */
26281 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngRetarderSelection - ( 0 )
26282 ) / 0.4 + 0.5);
26283 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26284 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
26285
26286 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
26287 /* Add or substract 0.5 in order to round to nearest integer */
26288 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABSFullyOperational ) + 0.5);
26289 CAN_Sgn.UnsignedSgn &= 0x00000003;
26290 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26291
26292 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
26293 /* Add or substract 0.5 in order to round to nearest integer */
26294 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EBSRedWarningSignal ) + 0.5);
26295 CAN_Sgn.UnsignedSgn &= 0x00000003;
26296 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26297 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26298
26299 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
26300 /* Add or substract 0.5 in order to round to nearest integer */
26301 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABS_EBSAmberWarningSignal )
26302 + 0.5);
26303 CAN_Sgn.UnsignedSgn &= 0x00000003;
26304 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26305 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26306
26307 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
26308 /* Add or substract 0.5 in order to round to nearest integer */
26309 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ATC_ASRInformationSignal ) +
26310 0.5);
26311 CAN_Sgn.UnsignedSgn &= 0x00000003;
26312 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26313 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26314
26315 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
26316 /* Add or substract 0.5 in order to round to nearest integer */
26317 CAN_Sgn.UnsignedSgn = (UInt32)
26318 (( L4_MABX_B.SrcAddrssOfCtrllngDvcFrBrkCntrl ) + 0.5);
26319 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26320 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
26321
26322 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
26323 /* Add or substract 0.5 in order to round to nearest integer */
26324 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.HaltBrakeSwitch ) + 0.5);
26325 CAN_Sgn.UnsignedSgn &= 0x00000003;
26326 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26327 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
26328
26329 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
26330 /* Add or substract 0.5 in order to round to nearest integer */
26331 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TrailerABSStatus ) + 0.5);
26332 CAN_Sgn.UnsignedSgn &= 0x00000003;
26333 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26334 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
26335
26336 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
26337 /* Add or substract 0.5 in order to round to nearest integer */
26338 CAN_Sgn.UnsignedSgn = (UInt32)
26339 (( L4_MABX_B.TrctrMntdTrilerABSWarningSignal ) + 0.5);
26340 CAN_Sgn.UnsignedSgn &= 0x00000003;
26341 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26342 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
26343 }
26344
26345 /* mask unused bits with '1' */
26346 CAN_Msg[7] |= 0x03;
26347
26348 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
26349 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B], 8,
26350 &(CAN_Msg[0]), delayTime);
26351 }
26352 }
26353
26354 /* End of Outputs for SubSystem: '<S899>/EBC1_TX' */
26355
26356 /* End of Outputs for SubSystem: '<S834>/CAN_TX_100ms' */
26357
26358 /* DiscretePulseGenerator: '<S1063>/Flash' */
26359 L4_MABX_B.Flash = (L4_MABX_DW.clockTickCounter_j < L4_MABX_P.Flash_Duty) &&
26360 (L4_MABX_DW.clockTickCounter_j >= 0) ? L4_MABX_P.Flash_Amp : 0.0;
26361 if (L4_MABX_DW.clockTickCounter_j >= L4_MABX_P.Flash_Period - 1.0) {
26362 L4_MABX_DW.clockTickCounter_j = 0;
26363 } else {
26364 L4_MABX_DW.clockTickCounter_j++;
26365 }
26366
26367 /* End of DiscretePulseGenerator: '<S1063>/Flash' */
26368 /* user code (Output function Trailer for TID3) */
26369
26370 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
26371 /* EventChannel: 0 */
26372 if (tid == 0) {
26373 DSXCP_service(0);
26374 }
26375
26376 /* If subsystem generates rate grouping Output functions,
26377 * when tid is used in Output function for one rate,
26378 * all Output functions include tid as a local variable.
26379 * As result, some Output functions may have unused tid.
26380 */
26381 UNUSED_PARAMETER(tid);
26382}
26383
26384/* Model update function for TID3 */
26385void L4_MABX_update3(void) /* Sample time: [0.1s, 0.0s] */
26386{
26387 /* Update for Atomic SubSystem: '<S834>/CAN_TX_100ms' */
26388
26389 /* Update for Enabled SubSystem: '<S871>/Rolling_15_counter' incorporates:
26390 * EnablePort: '<S913>/Enable'
26391 */
26392 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R) {
26393 /* Update for UnitDelay: '<S913>/Unit_Delay' */
26394 L4_MABX_DW.Unit_Delay_DSTATE = L4_MABX_B.FixPtSwitch;
26395 }
26396
26397 /* End of Update for SubSystem: '<S871>/Rolling_15_counter' */
26398
26399 /* End of Update for SubSystem: '<S834>/CAN_TX_100ms' */
26400
26401 /* Update for RateTransition: '<S1063>/TmpRTBAtANDInport1' */
26402 L4_MABX_DW.TmpRTBAtANDInport1_Buffer0 = L4_MABX_B.Flash;
26403}
26404
26405/* Model output function for TID4 */
26406void L4_MABX_output4(void) /* Sample time: [0.25s, 0.0s] */
26407{
26408 int_T tid = 4;
26409
26410 /* user code (Output function Trailer for TID4) */
26411
26412 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
26413 /* EventChannel: 0 */
26414 if (tid == 0) {
26415 DSXCP_service(0);
26416 }
26417
26418 /* If subsystem generates rate grouping Output functions,
26419 * when tid is used in Output function for one rate,
26420 * all Output functions include tid as a local variable.
26421 * As result, some Output functions may have unused tid.
26422 */
26423 UNUSED_PARAMETER(tid);
26424}
26425
26426/* Model update function for TID4 */
26427void L4_MABX_update4(void) /* Sample time: [0.25s, 0.0s] */
26428{
26429 /* (no update code required) */
26430}
26431
26432/* Model output function for TID5 */
26433void L4_MABX_output5(void) /* Sample time: [0.5s, 0.0s] */
26434{
26435 int_T tid = 5;
26436 boolean_T zcEvent;
26437 uint32_T q0;
26438 uint32_T qY;
26439
26440 /* S-Function (rti_commonblock): '<S28>/S-Function1' */
26441 /* This comment workarounds a code generation problem */
26442
26443 /* dSPACE RTICAN Status block */
26444 /* ... read status variables of the CAN microcontroller */
26445 {
26446 UInt32 loop_counter, memory, j;
26447 for (j=0;j<=9;j++) {
26448 rtican_type1_tq_error[0][6] = can_tp1_service_read
26449 (can_type1_service_M1_C1[j]);
26450 loop_counter = 0;
26451 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26452 (can_type1_service_M1_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26453 loop_counter++;
26454 if (loop_counter > MAX_LOOP) {
26455 memory = rtican_type1_error_level;
26456 rtican_type1_error_level = 1;
26457 rtican_type1_tq_err_sig(0, 6);
26458 rtican_type1_error_level = memory;
26459 break;
26460 }
26461 }
26462
26463 if (j==CANTP1_M1_C1_RXLost) {
26464 rtican_type1_tq_error[0][6] = can_tp1_service_read
26465 (can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]);
26466 loop_counter = 0;
26467 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26468 (can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]))==
26469 DSMCOM_BUFFER_OVERFLOW) {
26470 loop_counter++;
26471 if (loop_counter > MAX_LOOP) {
26472 memory = rtican_type1_error_level;
26473 rtican_type1_error_level = 1;
26474 rtican_type1_tq_err_sig(0, 6);
26475 rtican_type1_error_level = memory;
26476 break;
26477 }
26478 }
26479 }
26480 }
26481
26482 L4_MABX_B.SFunction1_o1_kx = (UInt32)
26483 can_type1_service_M1_C1[CANTP1_M1_C1_Status]->data0;
26484 DIAG_CAN1_Count_Stuff_Errors = (UInt32)
26485 can_type1_service_M1_C1[CANTP1_M1_C1_StuffErrors]->data0;
26486 DIAG_CAN1_Count_Format_Errors = (UInt32)
26487 can_type1_service_M1_C1[CANTP1_M1_C1_FormatErrors]->data0;
26488 DIAG_CAN1_Count_Ack_Errors = (UInt32)
26489 can_type1_service_M1_C1[CANTP1_M1_C1_AckErrors]->data0;
26490 DIAG_CAN1_Count_Bit0_Errors = (UInt32)
26491 can_type1_service_M1_C1[CANTP1_M1_C1_Bit0Errors]->data0;
26492 DIAG_CAN1_Count_Bit1_Errors = (UInt32)
26493 can_type1_service_M1_C1[CANTP1_M1_C1_Bit1Errors]->data0;
26494 DIAG_CAN1_Count_CRC_Errors = (UInt32)
26495 can_type1_service_M1_C1[CANTP1_M1_C1_CRCErrors]->data0;
26496 DIAG_CAN1_Count_RX_Lost = (UInt32)
26497 (can_type1_service_M1_C1[CANTP1_M1_C1_RXLost]->data0 +
26498 can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]->data0);
26499 DIAG_CAN1_Count_RX_OK = (UInt32) can_type1_service_M1_C1[CANTP1_M1_C1_RXOK
26500 ]->data0;
26501 DIAG_CAN1_Count_TX_OK = (UInt32) can_type1_service_M1_C1[CANTP1_M1_C1_TXOK
26502 ]->data0;
26503 }
26504
26505 /* DataTypeConversion: '<S1>/Data Type Conversion' */
26506 DIAG_CAN1_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26507 ((int32_T)L4_MABX_B.SFunction1_o1_kx);
26508
26509 /* RelationalOperator: '<S22>/Operator' incorporates:
26510 * Constant: '<S1>/Constant'
26511 */
26512 L4_MABX_B.Operator_eu = (L4_MABX_P.Constant_Value_cq == DIAG_CAN1_Status);
26513
26514 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' incorporates:
26515 * EnablePort: '<S11>/Enable'
26516 */
26517 if (L4_MABX_B.Operator_eu) {
26518 /* Reshape: '<S30>/Reshape' incorporates:
26519 * Constant: '<S30>/Constant'
26520 */
26521 L4_MABX_B.Reshape_g[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_l[0];
26522 L4_MABX_B.Reshape_g[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_l[1];
26523
26524 /* UnitDelay: '<S30>/Unit_Delay' */
26525 L4_MABX_B.Unit_Delay_h4 = L4_MABX_DW.Unit_Delay_DSTATE_f1;
26526
26527 /* UnitDelay: '<S31>/Unit Delay' */
26528 L4_MABX_B.UnitDelay_f = L4_MABX_DW.UnitDelay_DSTATE_j1;
26529
26530 /* Switch: '<S34>/Switch1' incorporates:
26531 * Constant: '<S31>/E'
26532 * Constant: '<S31>/IV'
26533 * Switch: '<S33>/Switch1'
26534 */
26535 if (L4_MABX_B.Unit_Delay_h4) {
26536 L4_MABX_B.Switch1_o = L4_MABX_P.IV_Value_m;
26537 } else {
26538 if (L4_MABX_P.E_Value) {
26539 /* Sum: '<S31>/Subtract' incorporates:
26540 * Constant: '<S31>/Constant'
26541 * Switch: '<S33>/Switch1'
26542 */
26543 q0 = L4_MABX_P.Constant_Value_jc;
26544 qY = q0 + L4_MABX_B.UnitDelay_f;
26545 if (qY < q0) {
26546 qY = MAX_uint32_T;
26547 }
26548
26549 L4_MABX_B.Subtract_ot = qY;
26550
26551 /* End of Sum: '<S31>/Subtract' */
26552
26553 /* Switch: '<S33>/Switch1' */
26554 L4_MABX_B.Switch1_a = L4_MABX_B.Subtract_ot;
26555 } else {
26556 /* Switch: '<S33>/Switch1' */
26557 L4_MABX_B.Switch1_a = L4_MABX_B.UnitDelay_f;
26558 }
26559
26560 L4_MABX_B.Switch1_o = L4_MABX_B.Switch1_a;
26561 }
26562
26563 /* End of Switch: '<S34>/Switch1' */
26564
26565 /* Selector: '<S30>/Selector' */
26566 L4_MABX_B.Selector_da = L4_MABX_B.Reshape_g[(int32_T)L4_MABX_B.Switch1_o - 1];
26567
26568 /* Outputs for Triggered SubSystem: '<S11>/CAN_TYPE1_BOR_M1_C1' incorporates:
26569 * TriggerPort: '<S29>/Trigger'
26570 */
26571 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE == POS_ZCSIG) !=
26572 (int32_T)L4_MABX_B.Selector_da) &&
26573 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE !=
26574 UNINITIALIZED_ZCSIG));
26575 if (zcEvent) {
26576 /* S-Function (rti_commonblock): '<S29>/S-Function1' */
26577 /* This comment workarounds a code generation problem */
26578
26579 /* dSPACE RTICAN Bus Off Recovery block */
26580 /* ... Perform software-reset of the CAN microcontroller */
26581 {
26582 UInt32 loop_counter, memory;
26583 loop_counter = 0;
26584 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_BOff_return
26585 (can_type1_channel_M1_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26586 loop_counter++;
26587 if (loop_counter > MAX_LOOP) {
26588 memory = rtican_type1_error_level;
26589 rtican_type1_error_level = 1;
26590 rtican_type1_tq_err_sig(0, 0);
26591 rtican_type1_error_level = memory;
26592 break;
26593 }
26594 }
26595
26596 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_all_wakeup
26597 (can_type1_channel_M1_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26598 loop_counter++;
26599 if (loop_counter > MAX_LOOP) {
26600 memory = rtican_type1_error_level;
26601 rtican_type1_error_level = 1;
26602 rtican_type1_tq_err_sig(0, 0);
26603 rtican_type1_error_level = memory;
26604 break;
26605 }
26606 }
26607 }
26608 }
26609
26610 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE = L4_MABX_B.Selector_da;
26611
26612 /* End of Outputs for SubSystem: '<S11>/CAN_TYPE1_BOR_M1_C1' */
26613
26614 /* RelationalOperator: '<S32>/Operator' */
26615 L4_MABX_B.Operator_f5 = (L4_MABX_B.Switch1_o == L4_MABX_ConstB.Width_p);
26616 }
26617
26618 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
26619
26620 /* S-Function (rti_commonblock): '<S20>/S-Function1' */
26621 /* This comment workarounds a code generation problem */
26622
26623 /* dSPACE RTICAN Status block */
26624 /* ... read status variables of the CAN microcontroller */
26625 {
26626 UInt32 loop_counter, memory, j;
26627 for (j=0;j<=9;j++) {
26628 rtican_type1_tq_error[2][6] = can_tp1_service_read
26629 (can_type1_service_M3_C1[j]);
26630 loop_counter = 0;
26631 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26632 (can_type1_service_M3_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26633 loop_counter++;
26634 if (loop_counter > MAX_LOOP) {
26635 memory = rtican_type1_error_level;
26636 rtican_type1_error_level = 1;
26637 rtican_type1_tq_err_sig(2, 6);
26638 rtican_type1_error_level = memory;
26639 break;
26640 }
26641 }
26642
26643 if (j==CANTP1_M3_C1_RXLost) {
26644 rtican_type1_tq_error[2][6] = can_tp1_service_read
26645 (can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]);
26646 loop_counter = 0;
26647 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26648 (can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]))==
26649 DSMCOM_BUFFER_OVERFLOW) {
26650 loop_counter++;
26651 if (loop_counter > MAX_LOOP) {
26652 memory = rtican_type1_error_level;
26653 rtican_type1_error_level = 1;
26654 rtican_type1_tq_err_sig(2, 6);
26655 rtican_type1_error_level = memory;
26656 break;
26657 }
26658 }
26659 }
26660 }
26661
26662 L4_MABX_B.SFunction1_o1_g3 = (UInt32)
26663 can_type1_service_M3_C1[CANTP1_M3_C1_Status]->data0;
26664 DIAG_CAN5_Count_Stuff_Errors = (UInt32)
26665 can_type1_service_M3_C1[CANTP1_M3_C1_StuffErrors]->data0;
26666 DIAG_CAN5_Count_Format_Errors = (UInt32)
26667 can_type1_service_M3_C1[CANTP1_M3_C1_FormatErrors]->data0;
26668 DIAG_CAN5_Count_Ack_Errors = (UInt32)
26669 can_type1_service_M3_C1[CANTP1_M3_C1_AckErrors]->data0;
26670 DIAG_CAN5_Count_Bit0_Errors = (UInt32)
26671 can_type1_service_M3_C1[CANTP1_M3_C1_Bit0Errors]->data0;
26672 DIAG_CAN5_Count_Bit1_Errors = (UInt32)
26673 can_type1_service_M3_C1[CANTP1_M3_C1_Bit1Errors]->data0;
26674 DIAG_CAN5_Count_CRC_Errors = (UInt32)
26675 can_type1_service_M3_C1[CANTP1_M3_C1_CRCErrors]->data0;
26676 DIAG_CAN5_Count_RX_Lost = (UInt32)
26677 (can_type1_service_M3_C1[CANTP1_M3_C1_RXLost]->data0 +
26678 can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]->data0);
26679 DIAG_CAN5_Count_RX_OK = (UInt32) can_type1_service_M3_C1[CANTP1_M3_C1_RXOK
26680 ]->data0;
26681 DIAG_CAN5_Count_TX_OK = (UInt32) can_type1_service_M3_C1[CANTP1_M3_C1_TXOK
26682 ]->data0;
26683 }
26684
26685 /* DataTypeConversion: '<S1>/Data Type Conversion5' */
26686 DIAG_CAN5_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26687 ((int32_T)L4_MABX_B.SFunction1_o1_g3);
26688
26689 /* RelationalOperator: '<S26>/Operator' incorporates:
26690 * Constant: '<S1>/Constant4'
26691 */
26692 L4_MABX_B.Operator_ms = (L4_MABX_P.Constant4_Value_np == DIAG_CAN5_Status);
26693
26694 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' incorporates:
26695 * EnablePort: '<S15>/Enable'
26696 */
26697 if (L4_MABX_B.Operator_ms) {
26698 /* Reshape: '<S54>/Reshape' incorporates:
26699 * Constant: '<S54>/Constant'
26700 */
26701 L4_MABX_B.Reshape_a[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_j[0];
26702 L4_MABX_B.Reshape_a[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_j[1];
26703
26704 /* UnitDelay: '<S54>/Unit_Delay' */
26705 L4_MABX_B.Unit_Delay_p1 = L4_MABX_DW.Unit_Delay_DSTATE_i5;
26706
26707 /* UnitDelay: '<S55>/Unit Delay' */
26708 L4_MABX_B.UnitDelay_j5 = L4_MABX_DW.UnitDelay_DSTATE_p;
26709
26710 /* Switch: '<S58>/Switch1' incorporates:
26711 * Constant: '<S55>/E'
26712 * Constant: '<S55>/IV'
26713 * Switch: '<S57>/Switch1'
26714 */
26715 if (L4_MABX_B.Unit_Delay_p1) {
26716 L4_MABX_B.Switch1_k = L4_MABX_P.IV_Value_h;
26717 } else {
26718 if (L4_MABX_P.E_Value_db) {
26719 /* Sum: '<S55>/Subtract' incorporates:
26720 * Constant: '<S55>/Constant'
26721 * Switch: '<S57>/Switch1'
26722 */
26723 q0 = L4_MABX_P.Constant_Value_jg;
26724 qY = q0 + L4_MABX_B.UnitDelay_j5;
26725 if (qY < q0) {
26726 qY = MAX_uint32_T;
26727 }
26728
26729 L4_MABX_B.Subtract_m = qY;
26730
26731 /* End of Sum: '<S55>/Subtract' */
26732
26733 /* Switch: '<S57>/Switch1' */
26734 L4_MABX_B.Switch1_l = L4_MABX_B.Subtract_m;
26735 } else {
26736 /* Switch: '<S57>/Switch1' */
26737 L4_MABX_B.Switch1_l = L4_MABX_B.UnitDelay_j5;
26738 }
26739
26740 L4_MABX_B.Switch1_k = L4_MABX_B.Switch1_l;
26741 }
26742
26743 /* End of Switch: '<S58>/Switch1' */
26744
26745 /* Selector: '<S54>/Selector' */
26746 L4_MABX_B.Selector_p = L4_MABX_B.Reshape_a[(int32_T)L4_MABX_B.Switch1_k - 1];
26747
26748 /* Outputs for Triggered SubSystem: '<S15>/CAN_TYPE1_BOR_M3_C1' incorporates:
26749 * TriggerPort: '<S53>/Trigger'
26750 */
26751 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE == POS_ZCSIG) !=
26752 (int32_T)L4_MABX_B.Selector_p) &&
26753 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE !=
26754 UNINITIALIZED_ZCSIG));
26755 if (zcEvent) {
26756 /* S-Function (rti_commonblock): '<S53>/S-Function1' */
26757 /* This comment workarounds a code generation problem */
26758
26759 /* dSPACE RTICAN Bus Off Recovery block */
26760 /* ... Perform software-reset of the CAN microcontroller */
26761 {
26762 UInt32 loop_counter, memory;
26763 loop_counter = 0;
26764 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_BOff_return
26765 (can_type1_channel_M3_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26766 loop_counter++;
26767 if (loop_counter > MAX_LOOP) {
26768 memory = rtican_type1_error_level;
26769 rtican_type1_error_level = 1;
26770 rtican_type1_tq_err_sig(2, 0);
26771 rtican_type1_error_level = memory;
26772 break;
26773 }
26774 }
26775
26776 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_all_wakeup
26777 (can_type1_channel_M3_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26778 loop_counter++;
26779 if (loop_counter > MAX_LOOP) {
26780 memory = rtican_type1_error_level;
26781 rtican_type1_error_level = 1;
26782 rtican_type1_tq_err_sig(2, 0);
26783 rtican_type1_error_level = memory;
26784 break;
26785 }
26786 }
26787 }
26788 }
26789
26790 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE = L4_MABX_B.Selector_p;
26791
26792 /* End of Outputs for SubSystem: '<S15>/CAN_TYPE1_BOR_M3_C1' */
26793
26794 /* RelationalOperator: '<S56>/Operator' */
26795 L4_MABX_B.Operator_ho = (L4_MABX_B.Switch1_k == L4_MABX_ConstB.Width_a);
26796 }
26797
26798 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
26799
26800 /* S-Function (rti_commonblock): '<S21>/S-Function1' */
26801 /* This comment workarounds a code generation problem */
26802
26803 /* dSPACE RTICAN Status block */
26804 /* ... read status variables of the CAN microcontroller */
26805 {
26806 UInt32 loop_counter, memory, j;
26807 for (j=0;j<=9;j++) {
26808 rtican_type1_tq_error[2][6] = can_tp1_service_read
26809 (can_type1_service_M3_C2[j]);
26810 loop_counter = 0;
26811 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26812 (can_type1_service_M3_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
26813 loop_counter++;
26814 if (loop_counter > MAX_LOOP) {
26815 memory = rtican_type1_error_level;
26816 rtican_type1_error_level = 1;
26817 rtican_type1_tq_err_sig(2, 6);
26818 rtican_type1_error_level = memory;
26819 break;
26820 }
26821 }
26822
26823 if (j==CANTP1_M3_C2_RXLost) {
26824 rtican_type1_tq_error[2][6] = can_tp1_service_read
26825 (can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]);
26826 loop_counter = 0;
26827 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26828 (can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]))==
26829 DSMCOM_BUFFER_OVERFLOW) {
26830 loop_counter++;
26831 if (loop_counter > MAX_LOOP) {
26832 memory = rtican_type1_error_level;
26833 rtican_type1_error_level = 1;
26834 rtican_type1_tq_err_sig(2, 6);
26835 rtican_type1_error_level = memory;
26836 break;
26837 }
26838 }
26839 }
26840 }
26841
26842 L4_MABX_B.SFunction1_o1_ar = (UInt32)
26843 can_type1_service_M3_C2[CANTP1_M3_C2_Status]->data0;
26844 DIAG_CAN6_Count_Stuff_Errors = (UInt32)
26845 can_type1_service_M3_C2[CANTP1_M3_C2_StuffErrors]->data0;
26846 DIAG_CAN6_Count_Format_Errors = (UInt32)
26847 can_type1_service_M3_C2[CANTP1_M3_C2_FormatErrors]->data0;
26848 DIAG_CAN6_Count_Ack_Errors = (UInt32)
26849 can_type1_service_M3_C2[CANTP1_M3_C2_AckErrors]->data0;
26850 DIAG_CAN6_Count_Bit0_Errors = (UInt32)
26851 can_type1_service_M3_C2[CANTP1_M3_C2_Bit0Errors]->data0;
26852 DIAG_CAN6_Count_Bit1_Errors = (UInt32)
26853 can_type1_service_M3_C2[CANTP1_M3_C2_Bit1Errors]->data0;
26854 DIAG_CAN6_Count_CRC_Errors = (UInt32)
26855 can_type1_service_M3_C2[CANTP1_M3_C2_CRCErrors]->data0;
26856 DIAG_CAN6_Count_RX_Lost = (UInt32)
26857 (can_type1_service_M3_C2[CANTP1_M3_C2_RXLost]->data0 +
26858 can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]->data0);
26859 DIAG_CAN6_Count_RX_OK = (UInt32) can_type1_service_M3_C2[CANTP1_M3_C2_RXOK
26860 ]->data0;
26861 DIAG_CAN6_Count_TX_OK = (UInt32) can_type1_service_M3_C2[CANTP1_M3_C2_TXOK
26862 ]->data0;
26863 }
26864
26865 /* DataTypeConversion: '<S1>/Data Type Conversion4' */
26866 DIAG_CAN6_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26867 ((int32_T)L4_MABX_B.SFunction1_o1_ar);
26868
26869 /* RelationalOperator: '<S27>/Operator' incorporates:
26870 * Constant: '<S1>/Constant5'
26871 */
26872 L4_MABX_B.Operator_fv = (L4_MABX_P.Constant5_Value_m == DIAG_CAN6_Status);
26873
26874 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' incorporates:
26875 * EnablePort: '<S16>/Enable'
26876 */
26877 if (L4_MABX_B.Operator_fv) {
26878 /* Reshape: '<S60>/Reshape' incorporates:
26879 * Constant: '<S60>/Constant'
26880 */
26881 L4_MABX_B.Reshape_j[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_e[0];
26882 L4_MABX_B.Reshape_j[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_e[1];
26883
26884 /* UnitDelay: '<S60>/Unit_Delay' */
26885 L4_MABX_B.Unit_Delay_mw = L4_MABX_DW.Unit_Delay_DSTATE_l5;
26886
26887 /* UnitDelay: '<S61>/Unit Delay' */
26888 L4_MABX_B.UnitDelay_a = L4_MABX_DW.UnitDelay_DSTATE_dr;
26889
26890 /* Switch: '<S64>/Switch1' incorporates:
26891 * Constant: '<S61>/E'
26892 * Constant: '<S61>/IV'
26893 * Switch: '<S63>/Switch1'
26894 */
26895 if (L4_MABX_B.Unit_Delay_mw) {
26896 L4_MABX_B.Switch1_h = L4_MABX_P.IV_Value_ey;
26897 } else {
26898 if (L4_MABX_P.E_Value_c) {
26899 /* Sum: '<S61>/Subtract' incorporates:
26900 * Constant: '<S61>/Constant'
26901 * Switch: '<S63>/Switch1'
26902 */
26903 q0 = L4_MABX_P.Constant_Value_iu;
26904 qY = q0 + L4_MABX_B.UnitDelay_a;
26905 if (qY < q0) {
26906 qY = MAX_uint32_T;
26907 }
26908
26909 L4_MABX_B.Subtract_fc = qY;
26910
26911 /* End of Sum: '<S61>/Subtract' */
26912
26913 /* Switch: '<S63>/Switch1' */
26914 L4_MABX_B.Switch1_b = L4_MABX_B.Subtract_fc;
26915 } else {
26916 /* Switch: '<S63>/Switch1' */
26917 L4_MABX_B.Switch1_b = L4_MABX_B.UnitDelay_a;
26918 }
26919
26920 L4_MABX_B.Switch1_h = L4_MABX_B.Switch1_b;
26921 }
26922
26923 /* End of Switch: '<S64>/Switch1' */
26924
26925 /* Selector: '<S60>/Selector' */
26926 L4_MABX_B.Selector_h = L4_MABX_B.Reshape_j[(int32_T)L4_MABX_B.Switch1_h - 1];
26927
26928 /* Outputs for Triggered SubSystem: '<S16>/CAN_TYPE1_BOR_M3_C2' incorporates:
26929 * TriggerPort: '<S59>/Trigger'
26930 */
26931 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE == POS_ZCSIG) !=
26932 (int32_T)L4_MABX_B.Selector_h) &&
26933 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE !=
26934 UNINITIALIZED_ZCSIG));
26935 if (zcEvent) {
26936 /* S-Function (rti_commonblock): '<S59>/S-Function1' */
26937 /* This comment workarounds a code generation problem */
26938
26939 /* dSPACE RTICAN Bus Off Recovery block */
26940 /* ... Perform software-reset of the CAN microcontroller */
26941 {
26942 UInt32 loop_counter, memory;
26943 loop_counter = 0;
26944 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_BOff_return
26945 (can_type1_channel_M3_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26946 loop_counter++;
26947 if (loop_counter > MAX_LOOP) {
26948 memory = rtican_type1_error_level;
26949 rtican_type1_error_level = 1;
26950 rtican_type1_tq_err_sig(2, 0);
26951 rtican_type1_error_level = memory;
26952 break;
26953 }
26954 }
26955
26956 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_all_wakeup
26957 (can_type1_channel_M3_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26958 loop_counter++;
26959 if (loop_counter > MAX_LOOP) {
26960 memory = rtican_type1_error_level;
26961 rtican_type1_error_level = 1;
26962 rtican_type1_tq_err_sig(2, 0);
26963 rtican_type1_error_level = memory;
26964 break;
26965 }
26966 }
26967 }
26968 }
26969
26970 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE = L4_MABX_B.Selector_h;
26971
26972 /* End of Outputs for SubSystem: '<S16>/CAN_TYPE1_BOR_M3_C2' */
26973
26974 /* RelationalOperator: '<S62>/Operator' */
26975 L4_MABX_B.Operator_bg = (L4_MABX_B.Switch1_h == L4_MABX_ConstB.Width);
26976 }
26977
26978 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
26979
26980 /* S-Function (rti_commonblock): '<S18>/S-Function1' */
26981 /* This comment workarounds a code generation problem */
26982
26983 /* dSPACE RTICAN Status block */
26984 /* ... read status variables of the CAN microcontroller */
26985 {
26986 UInt32 loop_counter, memory, j;
26987 for (j=0;j<=9;j++) {
26988 rtican_type1_tq_error[1][6] = can_tp1_service_read
26989 (can_type1_service_M2_C1[j]);
26990 loop_counter = 0;
26991 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26992 (can_type1_service_M2_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26993 loop_counter++;
26994 if (loop_counter > MAX_LOOP) {
26995 memory = rtican_type1_error_level;
26996 rtican_type1_error_level = 1;
26997 rtican_type1_tq_err_sig(1, 6);
26998 rtican_type1_error_level = memory;
26999 break;
27000 }
27001 }
27002
27003 if (j==CANTP1_M2_C1_RXLost) {
27004 rtican_type1_tq_error[1][6] = can_tp1_service_read
27005 (can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]);
27006 loop_counter = 0;
27007 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
27008 (can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]))==
27009 DSMCOM_BUFFER_OVERFLOW) {
27010 loop_counter++;
27011 if (loop_counter > MAX_LOOP) {
27012 memory = rtican_type1_error_level;
27013 rtican_type1_error_level = 1;
27014 rtican_type1_tq_err_sig(1, 6);
27015 rtican_type1_error_level = memory;
27016 break;
27017 }
27018 }
27019 }
27020 }
27021
27022 L4_MABX_B.SFunction1_o1_h4 = (UInt32)
27023 can_type1_service_M2_C1[CANTP1_M2_C1_Status]->data0;
27024 DIAG_CAN3_Count_Stuff_Errors = (UInt32)
27025 can_type1_service_M2_C1[CANTP1_M2_C1_StuffErrors]->data0;
27026 DIAG_CAN3_Count_Format_Errors = (UInt32)
27027 can_type1_service_M2_C1[CANTP1_M2_C1_FormatErrors]->data0;
27028 DIAG_CAN3_Count_Ack_Errors = (UInt32)
27029 can_type1_service_M2_C1[CANTP1_M2_C1_AckErrors]->data0;
27030 DIAG_CAN3_Count_Bit0_Errors = (UInt32)
27031 can_type1_service_M2_C1[CANTP1_M2_C1_Bit0Errors]->data0;
27032 DIAG_CAN3_Count_Bit1_Errors = (UInt32)
27033 can_type1_service_M2_C1[CANTP1_M2_C1_Bit1Errors]->data0;
27034 DIAG_CAN3_Count_CRC_Errors = (UInt32)
27035 can_type1_service_M2_C1[CANTP1_M2_C1_CRCErrors]->data0;
27036 DIAG_CAN3_Count_RX_Lost = (UInt32)
27037 (can_type1_service_M2_C1[CANTP1_M2_C1_RXLost]->data0 +
27038 can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]->data0);
27039 DIAG_CAN3_Count_RX_OK = (UInt32) can_type1_service_M2_C1[CANTP1_M2_C1_RXOK
27040 ]->data0;
27041 DIAG_CAN3_Count_TX_OK = (UInt32) can_type1_service_M2_C1[CANTP1_M2_C1_TXOK
27042 ]->data0;
27043 }
27044
27045 /* DataTypeConversion: '<S1>/Data Type Conversion3' */
27046 DIAG_CAN3_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
27047 ((int32_T)L4_MABX_B.SFunction1_o1_h4);
27048
27049 /* RelationalOperator: '<S24>/Operator' incorporates:
27050 * Constant: '<S1>/Constant1'
27051 */
27052 L4_MABX_B.Operator_bs = (L4_MABX_P.Constant1_Value_c0 == DIAG_CAN3_Status);
27053
27054 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' incorporates:
27055 * EnablePort: '<S13>/Enable'
27056 */
27057 if (L4_MABX_B.Operator_bs) {
27058 /* Reshape: '<S42>/Reshape' incorporates:
27059 * Constant: '<S42>/Constant'
27060 */
27061 L4_MABX_B.Reshape_i[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_o[0];
27062 L4_MABX_B.Reshape_i[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_o[1];
27063
27064 /* UnitDelay: '<S42>/Unit_Delay' */
27065 L4_MABX_B.Unit_Delay_m0 = L4_MABX_DW.Unit_Delay_DSTATE_h41;
27066
27067 /* UnitDelay: '<S43>/Unit Delay' */
27068 L4_MABX_B.UnitDelay_d = L4_MABX_DW.UnitDelay_DSTATE_dr4;
27069
27070 /* Switch: '<S46>/Switch1' incorporates:
27071 * Constant: '<S43>/E'
27072 * Constant: '<S43>/IV'
27073 * Switch: '<S45>/Switch1'
27074 */
27075 if (L4_MABX_B.Unit_Delay_m0) {
27076 L4_MABX_B.Switch1_k4 = L4_MABX_P.IV_Value_b;
27077 } else {
27078 if (L4_MABX_P.E_Value_d) {
27079 /* Sum: '<S43>/Subtract' incorporates:
27080 * Constant: '<S43>/Constant'
27081 * Switch: '<S45>/Switch1'
27082 */
27083 q0 = L4_MABX_P.Constant_Value_h3;
27084 qY = q0 + L4_MABX_B.UnitDelay_d;
27085 if (qY < q0) {
27086 qY = MAX_uint32_T;
27087 }
27088
27089 L4_MABX_B.Subtract_h = qY;
27090
27091 /* End of Sum: '<S43>/Subtract' */
27092
27093 /* Switch: '<S45>/Switch1' */
27094 L4_MABX_B.Switch1_fr = L4_MABX_B.Subtract_h;
27095 } else {
27096 /* Switch: '<S45>/Switch1' */
27097 L4_MABX_B.Switch1_fr = L4_MABX_B.UnitDelay_d;
27098 }
27099
27100 L4_MABX_B.Switch1_k4 = L4_MABX_B.Switch1_fr;
27101 }
27102
27103 /* End of Switch: '<S46>/Switch1' */
27104
27105 /* Selector: '<S42>/Selector' */
27106 L4_MABX_B.Selector_g = L4_MABX_B.Reshape_i[(int32_T)L4_MABX_B.Switch1_k4 - 1];
27107
27108 /* Outputs for Triggered SubSystem: '<S13>/CAN_TYPE1_BOR_M2_C1' incorporates:
27109 * TriggerPort: '<S41>/Trigger'
27110 */
27111 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE == POS_ZCSIG) !=
27112 (int32_T)L4_MABX_B.Selector_g) &&
27113 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE !=
27114 UNINITIALIZED_ZCSIG));
27115 if (zcEvent) {
27116 /* S-Function (rti_commonblock): '<S41>/S-Function1' */
27117 /* This comment workarounds a code generation problem */
27118
27119 /* dSPACE RTICAN Bus Off Recovery block */
27120 /* ... Perform software-reset of the CAN microcontroller */
27121 {
27122 UInt32 loop_counter, memory;
27123 loop_counter = 0;
27124 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_BOff_return
27125 (can_type1_channel_M2_C1)) == DSMCOM_BUFFER_OVERFLOW) {
27126 loop_counter++;
27127 if (loop_counter > MAX_LOOP) {
27128 memory = rtican_type1_error_level;
27129 rtican_type1_error_level = 1;
27130 rtican_type1_tq_err_sig(1, 0);
27131 rtican_type1_error_level = memory;
27132 break;
27133 }
27134 }
27135
27136 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_all_wakeup
27137 (can_type1_channel_M2_C1)) == DSMCOM_BUFFER_OVERFLOW) {
27138 loop_counter++;
27139 if (loop_counter > MAX_LOOP) {
27140 memory = rtican_type1_error_level;
27141 rtican_type1_error_level = 1;
27142 rtican_type1_tq_err_sig(1, 0);
27143 rtican_type1_error_level = memory;
27144 break;
27145 }
27146 }
27147 }
27148 }
27149
27150 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE = L4_MABX_B.Selector_g;
27151
27152 /* End of Outputs for SubSystem: '<S13>/CAN_TYPE1_BOR_M2_C1' */
27153
27154 /* RelationalOperator: '<S44>/Operator' */
27155 L4_MABX_B.Operator_dh = (L4_MABX_B.Switch1_k4 == L4_MABX_ConstB.Width_iw);
27156 }
27157
27158 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
27159
27160 /* S-Function (rti_commonblock): '<S19>/S-Function1' */
27161 /* This comment workarounds a code generation problem */
27162
27163 /* dSPACE RTICAN Status block */
27164 /* ... read status variables of the CAN microcontroller */
27165 {
27166 UInt32 loop_counter, memory, j;
27167 for (j=0;j<=9;j++) {
27168 rtican_type1_tq_error[1][6] = can_tp1_service_read
27169 (can_type1_service_M2_C2[j]);
27170 loop_counter = 0;
27171 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
27172 (can_type1_service_M2_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
27173 loop_counter++;
27174 if (loop_counter > MAX_LOOP) {
27175 memory = rtican_type1_error_level;
27176 rtican_type1_error_level = 1;
27177 rtican_type1_tq_err_sig(1, 6);
27178 rtican_type1_error_level = memory;
27179 break;
27180 }
27181 }
27182
27183 if (j==CANTP1_M2_C2_RXLost) {
27184 rtican_type1_tq_error[1][6] = can_tp1_service_read
27185 (can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]);
27186 loop_counter = 0;
27187 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
27188 (can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]))==
27189 DSMCOM_BUFFER_OVERFLOW) {
27190 loop_counter++;
27191 if (loop_counter > MAX_LOOP) {
27192 memory = rtican_type1_error_level;
27193 rtican_type1_error_level = 1;
27194 rtican_type1_tq_err_sig(1, 6);
27195 rtican_type1_error_level = memory;
27196 break;
27197 }
27198 }
27199 }
27200 }
27201
27202 L4_MABX_B.SFunction1_o1_ma = (UInt32)
27203 can_type1_service_M2_C2[CANTP1_M2_C2_Status]->data0;
27204 DIAG_CAN4_Count_Stuff_Errors = (UInt32)
27205 can_type1_service_M2_C2[CANTP1_M2_C2_StuffErrors]->data0;
27206 DIAG_CAN4_Count_Format_Errors = (UInt32)
27207 can_type1_service_M2_C2[CANTP1_M2_C2_FormatErrors]->data0;
27208 DIAG_CAN4_Count_Ack_Errors = (UInt32)
27209 can_type1_service_M2_C2[CANTP1_M2_C2_AckErrors]->data0;
27210 DIAG_CAN4_Count_Bit0_Errors = (UInt32)
27211 can_type1_service_M2_C2[CANTP1_M2_C2_Bit0Errors]->data0;
27212 DIAG_CAN4_Count_Bit1_Errors = (UInt32)
27213 can_type1_service_M2_C2[CANTP1_M2_C2_Bit1Errors]->data0;
27214 DIAG_CAN4_Count_CRC_Errors = (UInt32)
27215 can_type1_service_M2_C2[CANTP1_M2_C2_CRCErrors]->data0;
27216 DIAG_CAN4_Count_RX_Lost = (UInt32)
27217 (can_type1_service_M2_C2[CANTP1_M2_C2_RXLost]->data0 +
27218 can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]->data0);
27219 DIAG_CAN4_Count_RX_OK = (UInt32) can_type1_service_M2_C2[CANTP1_M2_C2_RXOK
27220 ]->data0;
27221 DIAG_CAN4_Count_TX_OK = (UInt32) can_type1_service_M2_C2[CANTP1_M2_C2_TXOK
27222 ]->data0;
27223 }
27224
27225 /* DataTypeConversion: '<S1>/Data Type Conversion2' */
27226 DIAG_CAN4_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
27227 ((int32_T)L4_MABX_B.SFunction1_o1_ma);
27228
27229 /* RelationalOperator: '<S25>/Operator' incorporates:
27230 * Constant: '<S1>/Constant3'
27231 */
27232 L4_MABX_B.Operator_bw = (L4_MABX_P.Constant3_Value_hq == DIAG_CAN4_Status);
27233
27234 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' incorporates:
27235 * EnablePort: '<S14>/Enable'
27236 */
27237 if (L4_MABX_B.Operator_bw) {
27238 /* Reshape: '<S48>/Reshape' incorporates:
27239 * Constant: '<S48>/Constant'
27240 */
27241 L4_MABX_B.Reshape_n[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_n[0];
27242 L4_MABX_B.Reshape_n[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_n[1];
27243
27244 /* UnitDelay: '<S48>/Unit_Delay' */
27245 L4_MABX_B.Unit_Delay_fl = L4_MABX_DW.Unit_Delay_DSTATE_mq;
27246
27247 /* UnitDelay: '<S49>/Unit Delay' */
27248 L4_MABX_B.UnitDelay_l = L4_MABX_DW.UnitDelay_DSTATE_h;
27249
27250 /* Switch: '<S52>/Switch1' incorporates:
27251 * Constant: '<S49>/E'
27252 * Constant: '<S49>/IV'
27253 * Switch: '<S51>/Switch1'
27254 */
27255 if (L4_MABX_B.Unit_Delay_fl) {
27256 L4_MABX_B.Switch1_e = L4_MABX_P.IV_Value_k;
27257 } else {
27258 if (L4_MABX_P.E_Value_m) {
27259 /* Sum: '<S49>/Subtract' incorporates:
27260 * Constant: '<S49>/Constant'
27261 * Switch: '<S51>/Switch1'
27262 */
27263 q0 = L4_MABX_P.Constant_Value_o0t;
27264 qY = q0 + L4_MABX_B.UnitDelay_l;
27265 if (qY < q0) {
27266 qY = MAX_uint32_T;
27267 }
27268
27269 L4_MABX_B.Subtract_f1 = qY;
27270
27271 /* End of Sum: '<S49>/Subtract' */
27272
27273 /* Switch: '<S51>/Switch1' */
27274 L4_MABX_B.Switch1_c4 = L4_MABX_B.Subtract_f1;
27275 } else {
27276 /* Switch: '<S51>/Switch1' */
27277 L4_MABX_B.Switch1_c4 = L4_MABX_B.UnitDelay_l;
27278 }
27279
27280 L4_MABX_B.Switch1_e = L4_MABX_B.Switch1_c4;
27281 }
27282
27283 /* End of Switch: '<S52>/Switch1' */
27284
27285 /* Selector: '<S48>/Selector' */
27286 L4_MABX_B.Selector_i = L4_MABX_B.Reshape_n[(int32_T)L4_MABX_B.Switch1_e - 1];
27287
27288 /* Outputs for Triggered SubSystem: '<S14>/CAN_TYPE1_BOR_M2_C2' incorporates:
27289 * TriggerPort: '<S47>/Trigger'
27290 */
27291 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE == POS_ZCSIG) !=
27292 (int32_T)L4_MABX_B.Selector_i) &&
27293 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE !=
27294 UNINITIALIZED_ZCSIG));
27295 if (zcEvent) {
27296 /* S-Function (rti_commonblock): '<S47>/S-Function1' */
27297 /* This comment workarounds a code generation problem */
27298
27299 /* dSPACE RTICAN Bus Off Recovery block */
27300 /* ... Perform software-reset of the CAN microcontroller */
27301 {
27302 UInt32 loop_counter, memory;
27303 loop_counter = 0;
27304 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_BOff_return
27305 (can_type1_channel_M2_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27306 loop_counter++;
27307 if (loop_counter > MAX_LOOP) {
27308 memory = rtican_type1_error_level;
27309 rtican_type1_error_level = 1;
27310 rtican_type1_tq_err_sig(1, 0);
27311 rtican_type1_error_level = memory;
27312 break;
27313 }
27314 }
27315
27316 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_all_wakeup
27317 (can_type1_channel_M2_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27318 loop_counter++;
27319 if (loop_counter > MAX_LOOP) {
27320 memory = rtican_type1_error_level;
27321 rtican_type1_error_level = 1;
27322 rtican_type1_tq_err_sig(1, 0);
27323 rtican_type1_error_level = memory;
27324 break;
27325 }
27326 }
27327 }
27328 }
27329
27330 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE = L4_MABX_B.Selector_i;
27331
27332 /* End of Outputs for SubSystem: '<S14>/CAN_TYPE1_BOR_M2_C2' */
27333
27334 /* RelationalOperator: '<S50>/Operator' */
27335 L4_MABX_B.Operator_oua = (L4_MABX_B.Switch1_e == L4_MABX_ConstB.Width_i);
27336 }
27337
27338 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
27339
27340 /* S-Function (rti_commonblock): '<S17>/S-Function1' */
27341 /* This comment workarounds a code generation problem */
27342
27343 /* dSPACE RTICAN Status block */
27344 /* ... read status variables of the CAN microcontroller */
27345 {
27346 UInt32 loop_counter, memory, j;
27347 for (j=0;j<=9;j++) {
27348 rtican_type1_tq_error[0][6] = can_tp1_service_read
27349 (can_type1_service_M1_C2[j]);
27350 loop_counter = 0;
27351 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
27352 (can_type1_service_M1_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
27353 loop_counter++;
27354 if (loop_counter > MAX_LOOP) {
27355 memory = rtican_type1_error_level;
27356 rtican_type1_error_level = 1;
27357 rtican_type1_tq_err_sig(0, 6);
27358 rtican_type1_error_level = memory;
27359 break;
27360 }
27361 }
27362
27363 if (j==CANTP1_M1_C2_RXLost) {
27364 rtican_type1_tq_error[0][6] = can_tp1_service_read
27365 (can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]);
27366 loop_counter = 0;
27367 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
27368 (can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]))==
27369 DSMCOM_BUFFER_OVERFLOW) {
27370 loop_counter++;
27371 if (loop_counter > MAX_LOOP) {
27372 memory = rtican_type1_error_level;
27373 rtican_type1_error_level = 1;
27374 rtican_type1_tq_err_sig(0, 6);
27375 rtican_type1_error_level = memory;
27376 break;
27377 }
27378 }
27379 }
27380 }
27381
27382 L4_MABX_B.SFunction1_o1_og = (UInt32)
27383 can_type1_service_M1_C2[CANTP1_M1_C2_Status]->data0;
27384 DIAG_CAN2_Count_Stuff_Errors = (UInt32)
27385 can_type1_service_M1_C2[CANTP1_M1_C2_StuffErrors]->data0;
27386 DIAG_CAN2_Count_Format_Errors = (UInt32)
27387 can_type1_service_M1_C2[CANTP1_M1_C2_FormatErrors]->data0;
27388 DIAG_CAN2_Count_Ack_Errors = (UInt32)
27389 can_type1_service_M1_C2[CANTP1_M1_C2_AckErrors]->data0;
27390 DIAG_CAN2_Count_Bit0_Errors = (UInt32)
27391 can_type1_service_M1_C2[CANTP1_M1_C2_Bit0Errors]->data0;
27392 DIAG_CAN2_Count_Bit1_Errors = (UInt32)
27393 can_type1_service_M1_C2[CANTP1_M1_C2_Bit1Errors]->data0;
27394 DIAG_CAN2_Count_CRC_Errors = (UInt32)
27395 can_type1_service_M1_C2[CANTP1_M1_C2_CRCErrors]->data0;
27396 DIAG_CAN2_Count_RX_Lost = (UInt32)
27397 (can_type1_service_M1_C2[CANTP1_M1_C2_RXLost]->data0 +
27398 can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]->data0);
27399 DIAG_CAN2_Count_RX_OK = (UInt32) can_type1_service_M1_C2[CANTP1_M1_C2_RXOK
27400 ]->data0;
27401 DIAG_CAN2_Count_TX_OK = (UInt32) can_type1_service_M1_C2[CANTP1_M1_C2_TXOK
27402 ]->data0;
27403 }
27404
27405 /* DataTypeConversion: '<S1>/Data Type Conversion1' */
27406 DIAG_CAN2_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
27407 ((int32_T)L4_MABX_B.SFunction1_o1_og);
27408
27409 /* RelationalOperator: '<S23>/Operator' incorporates:
27410 * Constant: '<S1>/Constant2'
27411 */
27412 L4_MABX_B.Operator_eb = (L4_MABX_P.Constant2_Value_j2 == DIAG_CAN2_Status);
27413
27414 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' incorporates:
27415 * EnablePort: '<S12>/Enable'
27416 */
27417 if (L4_MABX_B.Operator_eb) {
27418 /* Reshape: '<S36>/Reshape' incorporates:
27419 * Constant: '<S36>/Constant'
27420 */
27421 L4_MABX_B.Reshape_a5[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_d[0];
27422 L4_MABX_B.Reshape_a5[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_d[1];
27423
27424 /* UnitDelay: '<S36>/Unit_Delay' */
27425 L4_MABX_B.Unit_Delay_g = L4_MABX_DW.Unit_Delay_DSTATE_je;
27426
27427 /* UnitDelay: '<S37>/Unit Delay' */
27428 L4_MABX_B.UnitDelay_b = L4_MABX_DW.UnitDelay_DSTATE_b;
27429
27430 /* Switch: '<S40>/Switch1' incorporates:
27431 * Constant: '<S37>/E'
27432 * Constant: '<S37>/IV'
27433 * Switch: '<S39>/Switch1'
27434 */
27435 if (L4_MABX_B.Unit_Delay_g) {
27436 L4_MABX_B.Switch1_iy = L4_MABX_P.IV_Value_e;
27437 } else {
27438 if (L4_MABX_P.E_Value_l) {
27439 /* Sum: '<S37>/Subtract' incorporates:
27440 * Constant: '<S37>/Constant'
27441 * Switch: '<S39>/Switch1'
27442 */
27443 q0 = L4_MABX_P.Constant_Value_ae;
27444 qY = q0 + L4_MABX_B.UnitDelay_b;
27445 if (qY < q0) {
27446 qY = MAX_uint32_T;
27447 }
27448
27449 L4_MABX_B.Subtract_nc = qY;
27450
27451 /* End of Sum: '<S37>/Subtract' */
27452
27453 /* Switch: '<S39>/Switch1' */
27454 L4_MABX_B.Switch1_hm = L4_MABX_B.Subtract_nc;
27455 } else {
27456 /* Switch: '<S39>/Switch1' */
27457 L4_MABX_B.Switch1_hm = L4_MABX_B.UnitDelay_b;
27458 }
27459
27460 L4_MABX_B.Switch1_iy = L4_MABX_B.Switch1_hm;
27461 }
27462
27463 /* End of Switch: '<S40>/Switch1' */
27464
27465 /* Selector: '<S36>/Selector' */
27466 L4_MABX_B.Selector_b = L4_MABX_B.Reshape_a5[(int32_T)L4_MABX_B.Switch1_iy -
27467 1];
27468
27469 /* Outputs for Triggered SubSystem: '<S12>/CAN_TYPE1_BOR_M1_C2' incorporates:
27470 * TriggerPort: '<S35>/Trigger'
27471 */
27472 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE == POS_ZCSIG) !=
27473 (int32_T)L4_MABX_B.Selector_b) &&
27474 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE !=
27475 UNINITIALIZED_ZCSIG));
27476 if (zcEvent) {
27477 /* S-Function (rti_commonblock): '<S35>/S-Function1' */
27478 /* This comment workarounds a code generation problem */
27479
27480 /* dSPACE RTICAN Bus Off Recovery block */
27481 /* ... Perform software-reset of the CAN microcontroller */
27482 {
27483 UInt32 loop_counter, memory;
27484 loop_counter = 0;
27485 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_BOff_return
27486 (can_type1_channel_M1_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27487 loop_counter++;
27488 if (loop_counter > MAX_LOOP) {
27489 memory = rtican_type1_error_level;
27490 rtican_type1_error_level = 1;
27491 rtican_type1_tq_err_sig(0, 0);
27492 rtican_type1_error_level = memory;
27493 break;
27494 }
27495 }
27496
27497 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_all_wakeup
27498 (can_type1_channel_M1_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27499 loop_counter++;
27500 if (loop_counter > MAX_LOOP) {
27501 memory = rtican_type1_error_level;
27502 rtican_type1_error_level = 1;
27503 rtican_type1_tq_err_sig(0, 0);
27504 rtican_type1_error_level = memory;
27505 break;
27506 }
27507 }
27508 }
27509 }
27510
27511 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE = L4_MABX_B.Selector_b;
27512
27513 /* End of Outputs for SubSystem: '<S12>/CAN_TYPE1_BOR_M1_C2' */
27514
27515 /* RelationalOperator: '<S38>/Operator' */
27516 L4_MABX_B.Operator_bsv = (L4_MABX_B.Switch1_iy == L4_MABX_ConstB.Width_g);
27517 }
27518
27519 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
27520 /* user code (Output function Trailer for TID5) */
27521
27522 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27523 /* EventChannel: 0 */
27524 if (tid == 0) {
27525 DSXCP_service(0);
27526 }
27527
27528 /* If subsystem generates rate grouping Output functions,
27529 * when tid is used in Output function for one rate,
27530 * all Output functions include tid as a local variable.
27531 * As result, some Output functions may have unused tid.
27532 */
27533 UNUSED_PARAMETER(tid);
27534}
27535
27536/* Model update function for TID5 */
27537void L4_MABX_update5(void) /* Sample time: [0.5s, 0.0s] */
27538{
27539 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' incorporates:
27540 * EnablePort: '<S11>/Enable'
27541 */
27542 if (L4_MABX_B.Operator_eu) {
27543 /* Update for UnitDelay: '<S30>/Unit_Delay' */
27544 L4_MABX_DW.Unit_Delay_DSTATE_f1 = L4_MABX_B.Operator_f5;
27545
27546 /* Update for UnitDelay: '<S31>/Unit Delay' */
27547 L4_MABX_DW.UnitDelay_DSTATE_j1 = L4_MABX_B.Switch1_o;
27548 }
27549
27550 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
27551
27552 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' incorporates:
27553 * EnablePort: '<S15>/Enable'
27554 */
27555 if (L4_MABX_B.Operator_ms) {
27556 /* Update for UnitDelay: '<S54>/Unit_Delay' */
27557 L4_MABX_DW.Unit_Delay_DSTATE_i5 = L4_MABX_B.Operator_ho;
27558
27559 /* Update for UnitDelay: '<S55>/Unit Delay' */
27560 L4_MABX_DW.UnitDelay_DSTATE_p = L4_MABX_B.Switch1_k;
27561 }
27562
27563 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
27564
27565 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' incorporates:
27566 * EnablePort: '<S16>/Enable'
27567 */
27568 if (L4_MABX_B.Operator_fv) {
27569 /* Update for UnitDelay: '<S60>/Unit_Delay' */
27570 L4_MABX_DW.Unit_Delay_DSTATE_l5 = L4_MABX_B.Operator_bg;
27571
27572 /* Update for UnitDelay: '<S61>/Unit Delay' */
27573 L4_MABX_DW.UnitDelay_DSTATE_dr = L4_MABX_B.Switch1_h;
27574 }
27575
27576 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
27577
27578 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' incorporates:
27579 * EnablePort: '<S13>/Enable'
27580 */
27581 if (L4_MABX_B.Operator_bs) {
27582 /* Update for UnitDelay: '<S42>/Unit_Delay' */
27583 L4_MABX_DW.Unit_Delay_DSTATE_h41 = L4_MABX_B.Operator_dh;
27584
27585 /* Update for UnitDelay: '<S43>/Unit Delay' */
27586 L4_MABX_DW.UnitDelay_DSTATE_dr4 = L4_MABX_B.Switch1_k4;
27587 }
27588
27589 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
27590
27591 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' incorporates:
27592 * EnablePort: '<S14>/Enable'
27593 */
27594 if (L4_MABX_B.Operator_bw) {
27595 /* Update for UnitDelay: '<S48>/Unit_Delay' */
27596 L4_MABX_DW.Unit_Delay_DSTATE_mq = L4_MABX_B.Operator_oua;
27597
27598 /* Update for UnitDelay: '<S49>/Unit Delay' */
27599 L4_MABX_DW.UnitDelay_DSTATE_h = L4_MABX_B.Switch1_e;
27600 }
27601
27602 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
27603
27604 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' incorporates:
27605 * EnablePort: '<S12>/Enable'
27606 */
27607 if (L4_MABX_B.Operator_eb) {
27608 /* Update for UnitDelay: '<S36>/Unit_Delay' */
27609 L4_MABX_DW.Unit_Delay_DSTATE_je = L4_MABX_B.Operator_bsv;
27610
27611 /* Update for UnitDelay: '<S37>/Unit Delay' */
27612 L4_MABX_DW.UnitDelay_DSTATE_b = L4_MABX_B.Switch1_iy;
27613 }
27614
27615 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
27616}
27617
27618/* Model output function for TID6 */
27619void L4_MABX_output6(void) /* Sample time: [1.0s, 0.0s] */
27620{
27621 int_T tid = 6;
27622
27623 /* Outputs for Atomic SubSystem: '<S834>/CAN_TX_1000ms' */
27624
27625 /* DataTypeConversion: '<S846>/Data Type Conversion' incorporates:
27626 * Constant: '<S837>/Constant2'
27627 */
27628 L4_MABX_B.DataTypeConversion_pd = (uint8_T)L4_MABX_P.Constant2_Value_hj;
27629
27630 /* S-Function (sfix_bitop): '<S851>/Operator' */
27631 L4_MABX_B.Operator_kv = (uint8_T)(L4_MABX_B.DataTypeConversion_pd &
27632 L4_MABX_P.Operator_BitMask);
27633
27634 /* DataTypeConversion: '<S851>/DataType' */
27635 L4_MABX_B.DataType_ak = L4_MABX_B.Operator_kv;
27636
27637 /* ArithShift: '<S846>/Shift_Arithmetic 2' */
27638 L4_MABX_B.Shift_Arithmetic2_n = ldexp(L4_MABX_B.DataType_ak, (-3));
27639
27640 /* DataTypeConversion: '<S846>/Data Type Conversion5' */
27641 L4_MABX_B.DataTypeConversion5_br = (L4_MABX_B.Shift_Arithmetic2_n != 0.0);
27642
27643 /* Outputs for Enabled SubSystem: '<S854>/AIR1' incorporates:
27644 * EnablePort: '<S855>/Enable'
27645 */
27646 if (L4_MABX_B.DataTypeConversion5_br) {
27647 /* S-Function (rti_commonblock): '<S855>/S-Function1' */
27648 /* This comment workarounds a code generation problem */
27649
27650 /* dSPACE RTICAN TX Message Block: "AIR1" Id:419343921 */
27651 {
27652 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
27653
27654 Float32 delayTime = 0.0;
27655
27656 /* ... Read status and timestamp info (previous message) */
27657 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]);
27658
27659 /* Convert timestamp */
27660 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->processed) {
27661 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp =
27662 rtk_dsts_time_to_simtime_convert
27663 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp);
27664 }
27665
27666 /* Messages with timestamp zero have been received in pause/stop state
27667 and must not be handled.
27668 */
27669 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp > 0.0) {
27670 L4_MABX_B.SFunction1_o1_cut = (real_T)
27671 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->processed;
27672 L4_MABX_B.SFunction1_o2_i = (real_T)
27673 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp;
27674 L4_MABX_B.SFunction1_o3_nj = (real_T)
27675 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->deltatime;
27676 L4_MABX_B.SFunction1_o4_ed = (real_T)
27677 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->delaytime;
27678 }
27679
27680 /* ... Encode Simulink signals of TX and RM blocks*/
27681 {
27682 rtican_Signal_t CAN_Sgn;
27683
27684 /* ...... "PneumaticSupplyPress" (0|8, standard signal, unsigned int, little endian) */
27685 /* Add or substract 0.5 in order to round to nearest integer */
27686 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PneumaticSupplyPress - ( 0 )
27687 ) / 8 + 0.5);
27688 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27689 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
27690
27691 /* ...... "ParkingAnd_orTrailerAirPress" (8|8, standard signal, unsigned int, little endian) */
27692 /* Add or substract 0.5 in order to round to nearest integer */
27693 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingAnd_orTrailerAirPress
27694 - ( 0 ) ) / 8 + 0.5);
27695 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27696 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
27697
27698 /* ...... "ServiceBrakeCircuit1AirPress" (16|8, standard signal, unsigned int, little endian) */
27699 /* Add or substract 0.5 in order to round to nearest integer */
27700 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ServiceBrakeCircuit1AirPress
27701 - ( 0 ) ) / 8 + 0.5);
27702 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27703 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
27704
27705 /* ...... "ServiceBrakeCircuit2AirPress" (24|8, standard signal, unsigned int, little endian) */
27706 /* Add or substract 0.5 in order to round to nearest integer */
27707 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ServiceBrakeCircuit2AirPress
27708 - ( 0 ) ) / 8 + 0.5);
27709 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27710 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
27711
27712 /* ...... "AuxEquipmentSupplyPress" (32|8, standard signal, unsigned int, little endian) */
27713 /* Add or substract 0.5 in order to round to nearest integer */
27714 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AuxEquipmentSupplyPress -
27715 ( 0 ) ) / 8 + 0.5);
27716 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27717 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
27718
27719 /* ...... "AirSuspensionSupplyPress" (40|8, standard signal, unsigned int, little endian) */
27720 /* Add or substract 0.5 in order to round to nearest integer */
27721 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AirSuspensionSupplyPress - (
27722 0 ) ) / 8 + 0.5);
27723 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27724 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
27725
27726 /* ...... "AirCompressorStatus" (48|2, standard signal, unsigned int, little endian) */
27727 /* Add or substract 0.5 in order to round to nearest integer */
27728 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AirCompressorStatus ) + 0.5);
27729 CAN_Sgn.UnsignedSgn &= 0x00000003;
27730 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
27731
27732 /* ...... "PowertrainCircuitAirSupplyPress" (56|8, standard signal, unsigned int, little endian) */
27733 /* Add or substract 0.5 in order to round to nearest integer */
27734 CAN_Sgn.UnsignedSgn = (UInt32)
27735 (( L4_MABX_B.PowertrainCircuitAirSupplyPress - ( 0 ) ) / 8 + 0.5);
27736 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27737 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
27738 }
27739
27740 /* mask unused bits with '1' */
27741 CAN_Msg[6] |= 0xFC;
27742
27743 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
27744 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31], 8,
27745 &(CAN_Msg[0]), delayTime);
27746 }
27747 }
27748
27749 /* End of Outputs for SubSystem: '<S854>/AIR1' */
27750
27751 /* S-Function (sfix_bitop): '<S848>/Operator' */
27752 L4_MABX_B.Operator_ma = (uint8_T)(L4_MABX_B.DataTypeConversion_pd &
27753 L4_MABX_P.Operator_BitMask_i);
27754
27755 /* DataTypeConversion: '<S848>/DataType' */
27756 L4_MABX_B.DataType_hzh = L4_MABX_B.Operator_ma;
27757
27758 /* S-Function (sfix_bitop): '<S849>/Operator' */
27759 L4_MABX_B.Operator_cq5 = (uint8_T)(L4_MABX_B.DataTypeConversion_pd &
27760 L4_MABX_P.Operator_BitMask_c);
27761
27762 /* DataTypeConversion: '<S849>/DataType' */
27763 L4_MABX_B.DataType_lr = L4_MABX_B.Operator_cq5;
27764
27765 /* S-Function (sfix_bitop): '<S850>/Operator' */
27766 L4_MABX_B.Operator_ko = (uint8_T)(L4_MABX_B.DataTypeConversion_pd &
27767 L4_MABX_P.Operator_BitMask_f);
27768
27769 /* DataTypeConversion: '<S850>/DataType' */
27770 L4_MABX_B.DataType_b5 = L4_MABX_B.Operator_ko;
27771
27772 /* S-Function (sfix_bitop): '<S852>/Operator' */
27773 L4_MABX_B.Operator_cv = (uint8_T)(L4_MABX_B.DataTypeConversion_pd &
27774 L4_MABX_P.Operator_BitMask_k);
27775
27776 /* DataTypeConversion: '<S852>/DataType' */
27777 L4_MABX_B.DataType_n0 = L4_MABX_B.Operator_cv;
27778
27779 /* S-Function (sfix_bitop): '<S853>/Operator' */
27780 L4_MABX_B.Operator_lc = (uint8_T)(L4_MABX_B.DataTypeConversion_pd &
27781 L4_MABX_P.Operator_BitMask_p);
27782
27783 /* DataTypeConversion: '<S853>/DataType' */
27784 L4_MABX_B.DataType_ha = L4_MABX_B.Operator_lc;
27785
27786 /* DataTypeConversion: '<S846>/Data Type Conversion2' */
27787 L4_MABX_B.DataTypeConversion2_lb = (L4_MABX_B.DataType_hzh != 0);
27788
27789 /* ArithShift: '<S846>/Shift_Arithmetic ' */
27790 L4_MABX_B.Shift_Arithmetic_a = ldexp(L4_MABX_B.DataType_lr, (-1));
27791
27792 /* DataTypeConversion: '<S846>/Data Type Conversion3' */
27793 L4_MABX_B.DataTypeConversion3_fw = (L4_MABX_B.Shift_Arithmetic_a != 0.0);
27794
27795 /* ArithShift: '<S846>/Shift_Arithmetic 1' */
27796 L4_MABX_B.Shift_Arithmetic1_ia = ldexp(L4_MABX_B.DataType_b5, (-2));
27797
27798 /* DataTypeConversion: '<S846>/Data Type Conversion4' */
27799 L4_MABX_B.DataTypeConversion4_oi = (L4_MABX_B.Shift_Arithmetic1_ia != 0.0);
27800
27801 /* ArithShift: '<S846>/Shift_Arithmetic 3' */
27802 L4_MABX_B.Shift_Arithmetic3_l = ldexp(L4_MABX_B.DataType_n0, (-4));
27803
27804 /* DataTypeConversion: '<S846>/Data Type Conversion6' */
27805 L4_MABX_B.DataTypeConversion6_l = (L4_MABX_B.Shift_Arithmetic3_l != 0.0);
27806
27807 /* ArithShift: '<S846>/Shift_Arithmetic 4' */
27808 L4_MABX_B.Shift_Arithmetic4_h = ldexp(L4_MABX_B.DataType_ha, (-5));
27809
27810 /* DataTypeConversion: '<S846>/Data Type Conversion7' */
27811 L4_MABX_B.DataTypeConversion7_j1 = (L4_MABX_B.Shift_Arithmetic4_h != 0.0);
27812
27813 /* DataTypeConversion: '<S847>/Data Type Conversion' incorporates:
27814 * Constant: '<S837>/Constant1'
27815 */
27816 L4_MABX_B.DataTypeConversion_mb = (uint8_T)L4_MABX_P.Constant1_Value_g0;
27817
27818 /* S-Function (sfix_bitop): '<S859>/Operator' */
27819 L4_MABX_B.Operator_cgi = (uint8_T)(L4_MABX_B.DataTypeConversion_mb &
27820 L4_MABX_P.Operator_BitMask_m);
27821
27822 /* DataTypeConversion: '<S859>/DataType' */
27823 L4_MABX_B.DataType_f = L4_MABX_B.Operator_cgi;
27824
27825 /* ArithShift: '<S847>/Shift_Arithmetic 2' */
27826 L4_MABX_B.Shift_Arithmetic2_l = ldexp(L4_MABX_B.DataType_f, (-3));
27827
27828 /* DataTypeConversion: '<S847>/Data Type Conversion5' */
27829 L4_MABX_B.DataTypeConversion5_a3 = (L4_MABX_B.Shift_Arithmetic2_l != 0.0);
27830
27831 /* Outputs for Enabled SubSystem: '<S862>/AMB' incorporates:
27832 * EnablePort: '<S863>/Enable'
27833 */
27834 if (L4_MABX_B.DataTypeConversion5_a3) {
27835 /* S-Function (rti_commonblock): '<S863>/S-Function1' */
27836 /* This comment workarounds a code generation problem */
27837
27838 /* dSPACE RTICAN TX Message Block: "AMB" Id:419362048 */
27839 {
27840 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
27841
27842 Float32 delayTime = 0.0;
27843
27844 /* ... Read status and timestamp info (previous message) */
27845 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]);
27846
27847 /* Convert timestamp */
27848 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->processed) {
27849 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp =
27850 rtk_dsts_time_to_simtime_convert
27851 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp);
27852 }
27853
27854 /* Messages with timestamp zero have been received in pause/stop state
27855 and must not be handled.
27856 */
27857 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp > 0.0) {
27858 L4_MABX_B.SFunction1_o1_bv = (real_T)
27859 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->processed;
27860 L4_MABX_B.SFunction1_o2_d = (real_T)
27861 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp;
27862 L4_MABX_B.SFunction1_o3_f = (real_T)
27863 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->deltatime;
27864 L4_MABX_B.SFunction1_o4_o = (real_T)
27865 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->delaytime;
27866 }
27867
27868 /* ... Encode Simulink signals of TX and RM blocks*/
27869 {
27870 rtican_Signal_t CAN_Sgn;
27871
27872 /* ...... "BarometricPress" (0|8, standard signal, unsigned int, little endian) */
27873 /* Add or substract 0.5 in order to round to nearest integer */
27874 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BarometricPress_k - ( 0 ) ) /
27875 0.5 + 0.5);
27876 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27877 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
27878
27879 /* ...... "CabInteriorTemp" (8|16, standard signal, unsigned int, little endian) */
27880 /* Add or substract 0.5 in order to round to nearest integer */
27881 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CabInteriorTemp - ( -273 ) )
27882 / 0.03125 + 0.5);
27883 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27884 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
27885 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
27886
27887 /* ...... "AmbientAirTemp" (24|16, standard signal, unsigned int, little endian) */
27888 /* Add or substract 0.5 in order to round to nearest integer */
27889 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AmbientAirTemp_a - ( -273 ) )
27890 / 0.03125 + 0.5);
27891 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27892 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
27893 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
27894
27895 /* ...... "EngAirIntakeTemp" (40|8, standard signal, unsigned int, little endian) */
27896 /* Add or substract 0.5 in order to round to nearest integer */
27897 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.EngAirIntakeTemp - ( -40 ) +
27898 0.5);
27899 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27900 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
27901
27902 /* ...... "RoadSurfaceTemp" (48|16, standard signal, unsigned int, little endian) */
27903 /* Add or substract 0.5 in order to round to nearest integer */
27904 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.RoadSurfaceTemp - ( -273 ) )
27905 / 0.03125 + 0.5);
27906 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27907 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
27908 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte1;
27909 }
27910
27911 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
27912 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500], 8,
27913 &(CAN_Msg[0]), delayTime);
27914 }
27915 }
27916
27917 /* End of Outputs for SubSystem: '<S862>/AMB' */
27918
27919 /* S-Function (sfix_bitop): '<S856>/Operator' */
27920 L4_MABX_B.Operator_b2 = (uint8_T)(L4_MABX_B.DataTypeConversion_mb &
27921 L4_MABX_P.Operator_BitMask_ps);
27922
27923 /* DataTypeConversion: '<S856>/DataType' */
27924 L4_MABX_B.DataType_jq = L4_MABX_B.Operator_b2;
27925
27926 /* S-Function (sfix_bitop): '<S857>/Operator' */
27927 L4_MABX_B.Operator_h2 = (uint8_T)(L4_MABX_B.DataTypeConversion_mb &
27928 L4_MABX_P.Operator_BitMask_ft);
27929
27930 /* DataTypeConversion: '<S857>/DataType' */
27931 L4_MABX_B.DataType_a3 = L4_MABX_B.Operator_h2;
27932
27933 /* S-Function (sfix_bitop): '<S858>/Operator' */
27934 L4_MABX_B.Operator_f4 = (uint8_T)(L4_MABX_B.DataTypeConversion_mb &
27935 L4_MABX_P.Operator_BitMask_i5);
27936
27937 /* DataTypeConversion: '<S858>/DataType' */
27938 L4_MABX_B.DataType_gu = L4_MABX_B.Operator_f4;
27939
27940 /* S-Function (sfix_bitop): '<S860>/Operator' */
27941 L4_MABX_B.Operator_pi = (uint8_T)(L4_MABX_B.DataTypeConversion_mb &
27942 L4_MABX_P.Operator_BitMask_d);
27943
27944 /* DataTypeConversion: '<S860>/DataType' */
27945 L4_MABX_B.DataType_gz = L4_MABX_B.Operator_pi;
27946
27947 /* S-Function (sfix_bitop): '<S861>/Operator' */
27948 L4_MABX_B.Operator_dn = (uint8_T)(L4_MABX_B.DataTypeConversion_mb &
27949 L4_MABX_P.Operator_BitMask_fb);
27950
27951 /* DataTypeConversion: '<S861>/DataType' */
27952 L4_MABX_B.DataType_av = L4_MABX_B.Operator_dn;
27953
27954 /* DataTypeConversion: '<S847>/Data Type Conversion2' */
27955 L4_MABX_B.DataTypeConversion2_c = (L4_MABX_B.DataType_jq != 0);
27956
27957 /* ArithShift: '<S847>/Shift_Arithmetic ' */
27958 L4_MABX_B.Shift_Arithmetic_p2 = ldexp(L4_MABX_B.DataType_a3, (-1));
27959
27960 /* DataTypeConversion: '<S847>/Data Type Conversion3' */
27961 L4_MABX_B.DataTypeConversion3_jp = (L4_MABX_B.Shift_Arithmetic_p2 != 0.0);
27962
27963 /* ArithShift: '<S847>/Shift_Arithmetic 1' */
27964 L4_MABX_B.Shift_Arithmetic1_ic = ldexp(L4_MABX_B.DataType_gu, (-2));
27965
27966 /* DataTypeConversion: '<S847>/Data Type Conversion4' */
27967 L4_MABX_B.DataTypeConversion4_lk = (L4_MABX_B.Shift_Arithmetic1_ic != 0.0);
27968
27969 /* ArithShift: '<S847>/Shift_Arithmetic 3' */
27970 L4_MABX_B.Shift_Arithmetic3_o = ldexp(L4_MABX_B.DataType_gz, (-4));
27971
27972 /* DataTypeConversion: '<S847>/Data Type Conversion6' */
27973 L4_MABX_B.DataTypeConversion6_hu = (L4_MABX_B.Shift_Arithmetic3_o != 0.0);
27974
27975 /* ArithShift: '<S847>/Shift_Arithmetic 4' */
27976 L4_MABX_B.Shift_Arithmetic4_e = ldexp(L4_MABX_B.DataType_av, (-5));
27977
27978 /* DataTypeConversion: '<S847>/Data Type Conversion7' */
27979 L4_MABX_B.DataTypeConversion7_n = (L4_MABX_B.Shift_Arithmetic4_e != 0.0);
27980
27981 /* End of Outputs for SubSystem: '<S834>/CAN_TX_1000ms' */
27982 /* user code (Output function Trailer for TID6) */
27983
27984 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27985 /* EventChannel: 0 */
27986 if (tid == 0) {
27987 DSXCP_service(0);
27988 }
27989
27990 /* If subsystem generates rate grouping Output functions,
27991 * when tid is used in Output function for one rate,
27992 * all Output functions include tid as a local variable.
27993 * As result, some Output functions may have unused tid.
27994 */
27995 UNUSED_PARAMETER(tid);
27996}
27997
27998/* Model update function for TID6 */
27999void L4_MABX_update6(void) /* Sample time: [1.0s, 0.0s] */
28000{
28001 /* (no update code required) */
28002}
28003
28004/* Model output function for TID7 */
28005void L4_MABX_output7(void) /* Sample time: [5.0s, 0.0s] */
28006{
28007 int_T tid = 7;
28008 int32_T i;
28009 uint16_T tmp;
28010 uint32_T q0;
28011 uint32_T qY;
28012
28013 /* Outputs for Atomic SubSystem: '<S834>/CAN_TX_5000ms' */
28014
28015 /* DataTypeConversion: '<S1025>/Data Type Conversion6' incorporates:
28016 * Constant: '<S1025>/Enable_TX_RequestDiagMsgFromREAX'
28017 */
28018 L4_MABX_B.DataTypeConversion6_j2 = L4_MABX_P.Enable_TX_RequestDiagMsgFromREA;
28019
28020 /* Logic: '<S1029>/Operator' */
28021 L4_MABX_B.Operator_lmj = (L4_MABX_B.DataTypeConversion6_j2 &&
28022 L4_MABX_B.TmpRTBAtOperatorInport2);
28023
28024 /* DataTypeConversion: '<S1029>/DataType' */
28025 L4_MABX_B.DataType_ii = L4_MABX_B.Operator_lmj;
28026
28027 /* Reshape: '<S1034>/Reshape' incorporates:
28028 * Constant: '<S1034>/Constant'
28029 */
28030 for (i = 0; i < 8; i++) {
28031 L4_MABX_B.Reshape[i] = L4_MABX_P.Repeating_Sequence_Stair_OutVal[i];
28032 }
28033
28034 /* End of Reshape: '<S1034>/Reshape' */
28035
28036 /* UnitDelay: '<S1034>/Unit_Delay' */
28037 L4_MABX_B.Unit_Delay_l = L4_MABX_DW.Unit_Delay_DSTATE_l;
28038
28039 /* UnitDelay: '<S1035>/Unit Delay' */
28040 L4_MABX_B.UnitDelay_j = L4_MABX_DW.UnitDelay_DSTATE_c;
28041
28042 /* Switch: '<S1038>/Switch1' incorporates:
28043 * Constant: '<S1035>/E'
28044 * Constant: '<S1035>/IV'
28045 * Switch: '<S1037>/Switch1'
28046 */
28047 if (L4_MABX_B.Unit_Delay_l) {
28048 L4_MABX_B.Switch1_n = L4_MABX_P.IV_Value_i;
28049 } else {
28050 if (L4_MABX_P.E_Value_f) {
28051 /* Sum: '<S1035>/Subtract' incorporates:
28052 * Constant: '<S1035>/Constant'
28053 * Switch: '<S1037>/Switch1'
28054 */
28055 q0 = L4_MABX_P.Constant_Value_m5;
28056 qY = q0 + L4_MABX_B.UnitDelay_j;
28057 if (qY < q0) {
28058 qY = MAX_uint32_T;
28059 }
28060
28061 L4_MABX_B.Subtract_o3 = qY;
28062
28063 /* End of Sum: '<S1035>/Subtract' */
28064
28065 /* Switch: '<S1037>/Switch1' */
28066 L4_MABX_B.Switch1_fl = L4_MABX_B.Subtract_o3;
28067 } else {
28068 /* Switch: '<S1037>/Switch1' */
28069 L4_MABX_B.Switch1_fl = L4_MABX_B.UnitDelay_j;
28070 }
28071
28072 L4_MABX_B.Switch1_n = L4_MABX_B.Switch1_fl;
28073 }
28074
28075 /* End of Switch: '<S1038>/Switch1' */
28076
28077 /* Selector: '<S1034>/Selector' */
28078 L4_MABX_B.Selector = L4_MABX_B.Reshape[(int32_T)L4_MABX_B.Switch1_n - 1];
28079
28080 /* DataTypeConversion: '<S1026>/Data Type Conversion' */
28081 L4_MABX_B.DataTypeConversion_j = L4_MABX_B.Selector;
28082
28083 /* S-Function (sfix_bitop): '<S1031>/Operator' */
28084 L4_MABX_B.Operator = L4_MABX_B.DataTypeConversion_j &
28085 L4_MABX_P.Operator_BitMask_ox;
28086
28087 /* DataTypeConversion: '<S1031>/DataType' */
28088 q0 = L4_MABX_B.Operator;
28089 if (q0 > 255U) {
28090 q0 = 255U;
28091 }
28092
28093 L4_MABX_B.DataType_mp = (uint8_T)q0;
28094
28095 /* End of DataTypeConversion: '<S1031>/DataType' */
28096
28097 /* DataTypeConversion: '<S1026>/Data Type Conversion3' */
28098 L4_MABX_B.DataTypeConversion3_e = L4_MABX_B.DataType_mp;
28099
28100 /* DataTypeConversion: '<S1028>/Data Type Conversion' */
28101 L4_MABX_B.DataTypeConversion_o = L4_MABX_B.DataTypeConversion3_e;
28102
28103 /* S-Function (sfix_bitop): '<S1032>/Operator' */
28104 L4_MABX_B.Operator_p = L4_MABX_B.DataTypeConversion_j &
28105 L4_MABX_P.Operator_BitMask_hy;
28106
28107 /* DataTypeConversion: '<S1032>/DataType' */
28108 q0 = L4_MABX_B.Operator_p;
28109 if (q0 > 65535U) {
28110 q0 = 65535U;
28111 }
28112
28113 L4_MABX_B.DataType_m = (uint16_T)q0;
28114
28115 /* End of DataTypeConversion: '<S1032>/DataType' */
28116
28117 /* ArithShift: '<S1026>/Shift_Arithmetic ' */
28118 L4_MABX_B.Shift_Arithmetic_h = (uint16_T)((uint32_T)L4_MABX_B.DataType_m >> 8);
28119
28120 /* DataTypeConversion: '<S1026>/Data Type Conversion1' */
28121 tmp = L4_MABX_B.Shift_Arithmetic_h;
28122 if (tmp > 255) {
28123 tmp = 255U;
28124 }
28125
28126 L4_MABX_B.DataTypeConversion1_f3 = (uint8_T)tmp;
28127
28128 /* End of DataTypeConversion: '<S1026>/Data Type Conversion1' */
28129
28130 /* DataTypeConversion: '<S1028>/Data Type Conversion1' */
28131 L4_MABX_B.DataTypeConversion1_m3 = L4_MABX_B.DataTypeConversion1_f3;
28132
28133 /* S-Function (sfix_bitop): '<S1033>/Operator' */
28134 L4_MABX_B.Operator_d = L4_MABX_B.DataTypeConversion_j &
28135 L4_MABX_P.Operator_BitMask_fb0;
28136
28137 /* DataTypeConversion: '<S1033>/DataType' */
28138 L4_MABX_B.DataType_dj = L4_MABX_B.Operator_d;
28139
28140 /* ArithShift: '<S1026>/Shift_Arithmetic 1' */
28141 L4_MABX_B.Shift_Arithmetic1_j = L4_MABX_B.DataType_dj >> 16;
28142
28143 /* DataTypeConversion: '<S1026>/Data Type Conversion2' */
28144 q0 = L4_MABX_B.Shift_Arithmetic1_j;
28145 if (q0 > 255U) {
28146 q0 = 255U;
28147 }
28148
28149 L4_MABX_B.DataTypeConversion2_iw = (uint8_T)q0;
28150
28151 /* End of DataTypeConversion: '<S1026>/Data Type Conversion2' */
28152
28153 /* DataTypeConversion: '<S1028>/Data Type Conversion2' */
28154 L4_MABX_B.DataTypeConversion2_mn = L4_MABX_B.DataTypeConversion2_iw;
28155
28156 /* Outputs for Enabled SubSystem: '<S1028>/RQST_13_E4' incorporates:
28157 * EnablePort: '<S1030>/Enable'
28158 */
28159 if (L4_MABX_B.DataType_ii) {
28160 /* S-Function (rti_commonblock): '<S1030>/S-Function1' */
28161 /* This comment workarounds a code generation problem */
28162
28163 /* dSPACE RTICAN TX Message Block: "RQST_13_E4" Id:417993700 */
28164 {
28165 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
28166
28167 Float32 delayTime = 0.0;
28168
28169 /* ... Read status and timestamp info (previous message) */
28170 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]);
28171
28172 /* Convert timestamp */
28173 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->processed) {
28174 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp =
28175 rtk_dsts_time_to_simtime_convert
28176 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp);
28177 }
28178
28179 /* Messages with timestamp zero have been received in pause/stop state
28180 and must not be handled.
28181 */
28182 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp > 0.0) {
28183 L4_MABX_B.SFunction1_o1_h = (real_T)
28184 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->processed;
28185 L4_MABX_B.SFunction1_o2_f = (real_T)
28186 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp;
28187 L4_MABX_B.SFunction1_o3_m = (real_T)
28188 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->deltatime;
28189 L4_MABX_B.SFunction1_o4_a = (real_T)
28190 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->delaytime;
28191 }
28192
28193 /* ... Encode Simulink signals of TX and RM blocks*/
28194 {
28195 rtican_Signal_t CAN_Sgn;
28196
28197 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
28198 /* Add or substract 0.5 in order to round to nearest integer */
28199 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_o ) + 0.5);
28200 CAN_Sgn.UnsignedSgn &= 0x000000FF;
28201 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
28202
28203 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
28204 /* Add or substract 0.5 in order to round to nearest integer */
28205 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m3 ) +
28206 0.5);
28207 CAN_Sgn.UnsignedSgn &= 0x000000FF;
28208 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
28209
28210 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
28211 /* Add or substract 0.5 in order to round to nearest integer */
28212 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_mn ) +
28213 0.5);
28214 CAN_Sgn.UnsignedSgn &= 0x000000FF;
28215 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
28216 }
28217
28218 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
28219 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4], 8,
28220 &(CAN_Msg[0]), delayTime);
28221 }
28222 }
28223
28224 /* End of Outputs for SubSystem: '<S1028>/RQST_13_E4' */
28225
28226 /* RelationalOperator: '<S1036>/Operator' */
28227 L4_MABX_B.Operator_mi = (L4_MABX_B.Switch1_n == L4_MABX_B.Width);
28228
28229 /* End of Outputs for SubSystem: '<S834>/CAN_TX_5000ms' */
28230 /* user code (Output function Trailer for TID7) */
28231
28232 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
28233 /* EventChannel: 0 */
28234 if (tid == 0) {
28235 DSXCP_service(0);
28236 }
28237
28238 /* If subsystem generates rate grouping Output functions,
28239 * when tid is used in Output function for one rate,
28240 * all Output functions include tid as a local variable.
28241 * As result, some Output functions may have unused tid.
28242 */
28243 UNUSED_PARAMETER(tid);
28244}
28245
28246/* Model update function for TID7 */
28247void L4_MABX_update7(void) /* Sample time: [5.0s, 0.0s] */
28248{
28249 /* Update for Atomic SubSystem: '<S834>/CAN_TX_5000ms' */
28250
28251 /* Update for UnitDelay: '<S1034>/Unit_Delay' */
28252 L4_MABX_DW.Unit_Delay_DSTATE_l = L4_MABX_B.Operator_mi;
28253
28254 /* Update for UnitDelay: '<S1035>/Unit Delay' */
28255 L4_MABX_DW.UnitDelay_DSTATE_c = L4_MABX_B.Switch1_n;
28256
28257 /* End of Update for SubSystem: '<S834>/CAN_TX_5000ms' */
28258}
28259
28260/* Model output function for TID8 */
28261void L4_MABX_output8(void) /* Sample time: [10.0s, 0.0s] */
28262{
28263 int_T tid = 8;
28264
28265 /* user code (Output function Trailer for TID8) */
28266
28267 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
28268 /* EventChannel: 0 */
28269 if (tid == 0) {
28270 DSXCP_service(0);
28271 }
28272
28273 /* If subsystem generates rate grouping Output functions,
28274 * when tid is used in Output function for one rate,
28275 * all Output functions include tid as a local variable.
28276 * As result, some Output functions may have unused tid.
28277 */
28278 UNUSED_PARAMETER(tid);
28279}
28280
28281/* Model update function for TID8 */
28282void L4_MABX_update8(void) /* Sample time: [10.0s, 0.0s] */
28283{
28284 /* (no update code required) */
28285}
28286
28287/* Model output wrapper function for compatibility with a static main program */
28288void L4_MABX_output(int_T tid)
28289{
28290 switch (tid) {
28291 case 0 :
28292 L4_MABX_output0();
28293 break;
28294
28295 case 1 :
28296 L4_MABX_output1();
28297 break;
28298
28299 case 2 :
28300 L4_MABX_output2();
28301 break;
28302
28303 case 3 :
28304 L4_MABX_output3();
28305 break;
28306
28307 case 4 :
28308 L4_MABX_output4();
28309 break;
28310
28311 case 5 :
28312 L4_MABX_output5();
28313 break;
28314
28315 case 6 :
28316 L4_MABX_output6();
28317 break;
28318
28319 case 7 :
28320 L4_MABX_output7();
28321 break;
28322
28323 case 8 :
28324 L4_MABX_output8();
28325 break;
28326
28327 default :
28328 break;
28329 }
28330}
28331
28332/* Model update wrapper function for compatibility with a static main program */
28333void L4_MABX_update(int_T tid)
28334{
28335 switch (tid) {
28336 case 0 :
28337 L4_MABX_update0();
28338 break;
28339
28340 case 1 :
28341 L4_MABX_update1();
28342 break;
28343
28344 case 2 :
28345 L4_MABX_update2();
28346 break;
28347
28348 case 3 :
28349 L4_MABX_update3();
28350 break;
28351
28352 case 4 :
28353 L4_MABX_update4();
28354 break;
28355
28356 case 5 :
28357 L4_MABX_update5();
28358 break;
28359
28360 case 6 :
28361 L4_MABX_update6();
28362 break;
28363
28364 case 7 :
28365 L4_MABX_update7();
28366 break;
28367
28368 case 8 :
28369 L4_MABX_update8();
28370 break;
28371
28372 default :
28373 break;
28374 }
28375}
28376
28377/* Model initialize function */
28378void L4_MABX_initialize(void)
28379{
28380 /* Registration code */
28381
28382 /* initialize non-finites */
28383 rt_InitInfAndNaN(sizeof(real_T));
28384
28385 /* non-finite (run-time) assignments */
28386 L4_MABX_P.Saturation_UpperSat = rtInf;
28387 L4_MABX_P.Saturation_UpperSat_o = rtInf;
28388 L4_MABX_P.Saturation_UpperSat_f = rtInf;
28389 L4_MABX_P.Saturation1_UpperSat_j = rtInf;
28390 L4_MABX_P.Saturation_UpperSat_l = rtInf;
28391 L4_MABX_P.Saturation_UpperSat_o1 = rtInf;
28392 L4_MABX_P.Saturation_UpperSat_d = rtInf;
28393 L4_MABX_P.Saturation_UpperSat_ok = rtInf;
28394 L4_MABX_P.Saturation_UpperSat_g = rtInf;
28395 L4_MABX_P.Saturation_UpperSat_iw = rtInf;
28396 L4_MABX_P.Calculate_D_term_h.Saturation_UpperSat = rtInf;
28397 L4_MABX_P.Calculate_D_term_p.Saturation_UpperSat = rtInf;
28398 L4_MABX_P.Calculate_D_term.Saturation_UpperSat = rtInf;
28399
28400 /* initialize real-time model */
28401 (void) memset((void *)L4_MABX_M, 0,
28402 sizeof(RT_MODEL_L4_MABX_T));
28403 (L4_MABX_M)->Timing.TaskCounters.cLimit[0] = 1;
28404 (L4_MABX_M)->Timing.TaskCounters.cLimit[1] = 2;
28405 (L4_MABX_M)->Timing.TaskCounters.cLimit[2] = 5;
28406 (L4_MABX_M)->Timing.TaskCounters.cLimit[3] = 10;
28407 (L4_MABX_M)->Timing.TaskCounters.cLimit[4] = 25;
28408 (L4_MABX_M)->Timing.TaskCounters.cLimit[5] = 50;
28409 (L4_MABX_M)->Timing.TaskCounters.cLimit[6] = 100;
28410 (L4_MABX_M)->Timing.TaskCounters.cLimit[7] = 500;
28411 (L4_MABX_M)->Timing.TaskCounters.cLimit[8] = 1000;
28412 rtsiSetSolverName(&L4_MABX_M->solverInfo,"FixedStepDiscrete");
28413 L4_MABX_M->solverInfoPtr = (&L4_MABX_M->solverInfo);
28414
28415 /* Initialize timing info */
28416 {
28417 int_T *mdlTsMap = L4_MABX_M->Timing.sampleTimeTaskIDArray;
28418 int_T i;
28419 for (i = 0; i < 9; i++) {
28420 mdlTsMap[i] = i;
28421 }
28422
28423 L4_MABX_M->Timing.sampleTimeTaskIDPtr = (&mdlTsMap[0]);
28424 L4_MABX_M->Timing.sampleTimes = (&L4_MABX_M->Timing.sampleTimesArray[0]);
28425 L4_MABX_M->Timing.offsetTimes = (&L4_MABX_M->Timing.offsetTimesArray[0]);
28426
28427 /* task periods */
28428 L4_MABX_M->Timing.sampleTimes[0] = (0.01);
28429 L4_MABX_M->Timing.sampleTimes[1] = (0.02);
28430 L4_MABX_M->Timing.sampleTimes[2] = (0.05);
28431 L4_MABX_M->Timing.sampleTimes[3] = (0.1);
28432 L4_MABX_M->Timing.sampleTimes[4] = (0.25);
28433 L4_MABX_M->Timing.sampleTimes[5] = (0.5);
28434 L4_MABX_M->Timing.sampleTimes[6] = (1.0);
28435 L4_MABX_M->Timing.sampleTimes[7] = (5.0);
28436 L4_MABX_M->Timing.sampleTimes[8] = (10.0);
28437
28438 /* task offsets */
28439 L4_MABX_M->Timing.offsetTimes[0] = (0.0);
28440 L4_MABX_M->Timing.offsetTimes[1] = (0.0);
28441 L4_MABX_M->Timing.offsetTimes[2] = (0.0);
28442 L4_MABX_M->Timing.offsetTimes[3] = (0.0);
28443 L4_MABX_M->Timing.offsetTimes[4] = (0.0);
28444 L4_MABX_M->Timing.offsetTimes[5] = (0.0);
28445 L4_MABX_M->Timing.offsetTimes[6] = (0.0);
28446 L4_MABX_M->Timing.offsetTimes[7] = (0.0);
28447 L4_MABX_M->Timing.offsetTimes[8] = (0.0);
28448 }
28449
28450 rtmSetTPtr(L4_MABX_M, &L4_MABX_M->Timing.tArray[0]);
28451
28452 {
28453 int_T *mdlSampleHits = L4_MABX_M->Timing.sampleHitArray;
28454 int_T *mdlPerTaskSampleHits = L4_MABX_M->Timing.perTaskSampleHitsArray;
28455 L4_MABX_M->Timing.perTaskSampleHits = (&mdlPerTaskSampleHits[0]);
28456 mdlSampleHits[0] = 1;
28457 L4_MABX_M->Timing.sampleHits = (&mdlSampleHits[0]);
28458 }
28459
28460 rtmSetTFinal(L4_MABX_M, -1);
28461 L4_MABX_M->Timing.stepSize0 = 0.01;
28462 L4_MABX_M->Timing.stepSize9 = 2.3283064365386963E-10;
28463 L4_MABX_M->Timing.stepSize10 = 2.3283064365386963E-10;
28464 L4_MABX_M->Timing.stepSize11 = 2.3283064365386963E-10;
28465 L4_MABX_M->solverInfoPtr = (&L4_MABX_M->solverInfo);
28466 L4_MABX_M->Timing.stepSize = (0.01);
28467 rtsiSetFixedStepSize(&L4_MABX_M->solverInfo, 0.01);
28468 rtsiSetSolverMode(&L4_MABX_M->solverInfo, SOLVER_MODE_MULTITASKING);
28469
28470 /* block I/O */
28471 (void) memset(((void *) &L4_MABX_B), 0,
28472 sizeof(B_L4_MABX_T));
28473
28474 {
28475 L4_MABX_B.EPBPCMInhibitStatusFeedback = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28476 L4_MABX_B.EPBPCMInhibitStatusFeedback_e = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28477 L4_MABX_B.EPBPCMManualStatusFeedback = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28478 L4_MABX_B.EPBPCMManualStatusFeedback_m = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28479 L4_MABX_B.EPBPCMInhibitStatusFeedback_p = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28480 L4_MABX_B.EPBPCMInhibitStatusFeedback_c = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28481 L4_MABX_B.EPBPCMManualStatusFeedback_b = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28482 L4_MABX_B.EPBPCMManualStatusFeedback_a = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28483 L4_MABX_B.XPRErrorState = ENUM_XPR_ERROR_STATE_T_XPR_OK;
28484 L4_MABX_B.XPRErrorState_d = ENUM_XPR_ERROR_STATE_T_XPR_OK;
28485 L4_MABX_B.XPRControlMode = ENUM_XPR_CONTROL_MODE_T_NO_BRAKE_DEMAND;
28486 L4_MABX_B.XPRControlMode_d = ENUM_XPR_CONTROL_MODE_T_NO_BRAKE_DEMAND;
28487 L4_MABX_B.XBRPassThroughActive = ENUM_XBR_PASS_THROUGH_ACTIVE_T_NOT_ACTIVE;
28488 L4_MABX_B.DataTypeConversion_lr = ENUM_SWITCH_T_OFF;
28489 L4_MABX_B.DataTypeConversion1_lu = ENUM_SWITCH_T_OFF;
28490 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
28491 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
28492 L4_MABX_B.BrkPedArbBrakeSwitch = ENUM_J1939_SWITCH_T_OFF;
28493 L4_MABX_B.BrkPedArbBrakeSwitch_c = ENUM_J1939_SWITCH_T_OFF;
28494 L4_MABX_B.DataTypeConversion1_cy = ENUM_J1939_SWITCH_T_OFF;
28495 L4_MABX_B.DataTypeConversion3_l = ENUM_J1939_SWITCH_T_OFF;
28496 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_NOT_AVAILABLE;
28497 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_NOT_AVAILABLE;
28498 L4_MABX_B.If_Then_Else_nq.XBRPriority = ENUM_XBR_PRIORITY_T_HIGHEST_PRIORITY;
28499 L4_MABX_B.If_Then_Else_nq.XBRPassThroughActive =
28500 ENUM_XBR_PASS_THROUGH_ACTIVE_T_NOT_ACTIVE;
28501 L4_MABX_B.If_Then_Else_nq.XBREnduranceBrakeIntegrationMod =
28502 ENUM_XBR_EBI_MODE_T_NO_EBI_ALLOWED;
28503 L4_MABX_B.If_Then_Else_nq.XBRControlMode =
28504 ENUM_XBR_CONTROL_MODE_T_OVERRIDE_DISABLED;
28505 }
28506
28507 /* exported global signals */
28508 GLB_Absolute_Timestamp = 0.0;
28509 ReAX_ActualHandwheelPos = 0.0;
28510 EthernetLinkStatus = 0.0;
28511 CurrentAzimuth_rad = 0.0;
28512 TargetAzimuth_rad = 0.0;
28513 TargetVelocity_kph = 0.0;
28514 Curvature = 0.0;
28515 CrosstrackError = 0.0;
28516 CurrentVelocity_kph = 0.0;
28517 GPS_X = 0.0;
28518 GPS_Y = 0.0;
28519 GPS_Time = 0.0;
28520 ReAX_EchoedSteerWheelPos = 0.0;
28521 SteerWheelAngle = 0.0;
28522 YawRate = 0.0;
28523 SPN1810_LongitudinalAcceleration = 0.0;
28524 WheelBasedVehicleSpeed = 0.0;
28525 BrakeSwitch = 0.0;
28526 Lateral_Control_Rate_Limit = 0.0;
28527 Lateral_Control_Output = 0.0;
28528 Lateral_Control_Rate_Limiter_Output = 0.0;
28529 SteerCommandDeg = 0.0;
28530 DesiredSteeringAngle = 0.0;
28531 Lateral_Control_Heading_Error = 0.0;
28532 DIAG_CAN1_Count_Stuff_Errors = 0U;
28533 DIAG_CAN1_Count_Format_Errors = 0U;
28534 DIAG_CAN1_Count_Ack_Errors = 0U;
28535 DIAG_CAN1_Count_Bit0_Errors = 0U;
28536 DIAG_CAN1_Count_Bit1_Errors = 0U;
28537 DIAG_CAN1_Count_CRC_Errors = 0U;
28538 DIAG_CAN1_Count_RX_Lost = 0U;
28539 DIAG_CAN1_Count_RX_OK = 0U;
28540 DIAG_CAN1_Count_TX_OK = 0U;
28541 DIAG_CAN5_Count_Stuff_Errors = 0U;
28542 DIAG_CAN5_Count_Format_Errors = 0U;
28543 DIAG_CAN5_Count_Ack_Errors = 0U;
28544 DIAG_CAN5_Count_Bit0_Errors = 0U;
28545 DIAG_CAN5_Count_Bit1_Errors = 0U;
28546 DIAG_CAN5_Count_CRC_Errors = 0U;
28547 DIAG_CAN5_Count_RX_Lost = 0U;
28548 DIAG_CAN5_Count_RX_OK = 0U;
28549 DIAG_CAN5_Count_TX_OK = 0U;
28550 DIAG_CAN6_Count_Stuff_Errors = 0U;
28551 DIAG_CAN6_Count_Format_Errors = 0U;
28552 DIAG_CAN6_Count_Ack_Errors = 0U;
28553 DIAG_CAN6_Count_Bit0_Errors = 0U;
28554 DIAG_CAN6_Count_Bit1_Errors = 0U;
28555 DIAG_CAN6_Count_CRC_Errors = 0U;
28556 DIAG_CAN6_Count_RX_Lost = 0U;
28557 DIAG_CAN6_Count_RX_OK = 0U;
28558 DIAG_CAN6_Count_TX_OK = 0U;
28559 DIAG_CAN3_Count_Stuff_Errors = 0U;
28560 DIAG_CAN3_Count_Format_Errors = 0U;
28561 DIAG_CAN3_Count_Ack_Errors = 0U;
28562 DIAG_CAN3_Count_Bit0_Errors = 0U;
28563 DIAG_CAN3_Count_Bit1_Errors = 0U;
28564 DIAG_CAN3_Count_CRC_Errors = 0U;
28565 DIAG_CAN3_Count_RX_Lost = 0U;
28566 DIAG_CAN3_Count_RX_OK = 0U;
28567 DIAG_CAN3_Count_TX_OK = 0U;
28568 DIAG_CAN4_Count_Stuff_Errors = 0U;
28569 DIAG_CAN4_Count_Format_Errors = 0U;
28570 DIAG_CAN4_Count_Ack_Errors = 0U;
28571 DIAG_CAN4_Count_Bit0_Errors = 0U;
28572 DIAG_CAN4_Count_Bit1_Errors = 0U;
28573 DIAG_CAN4_Count_CRC_Errors = 0U;
28574 DIAG_CAN4_Count_RX_Lost = 0U;
28575 DIAG_CAN4_Count_RX_OK = 0U;
28576 DIAG_CAN4_Count_TX_OK = 0U;
28577 DIAG_CAN2_Count_Stuff_Errors = 0U;
28578 DIAG_CAN2_Count_Format_Errors = 0U;
28579 DIAG_CAN2_Count_Ack_Errors = 0U;
28580 DIAG_CAN2_Count_Bit0_Errors = 0U;
28581 DIAG_CAN2_Count_Bit1_Errors = 0U;
28582 DIAG_CAN2_Count_CRC_Errors = 0U;
28583 DIAG_CAN2_Count_RX_Lost = 0U;
28584 DIAG_CAN2_Count_RX_OK = 0U;
28585 DIAG_CAN2_Count_TX_OK = 0U;
28586 REAX_Handwheel_Torque = 0.0F;
28587 REAX_Handwheel_Velocity = 0.0F;
28588 REAX_Pull_Compensation = 0.0F;
28589 DIAG_CAN1_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28590 DIAG_CAN5_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28591 DIAG_CAN6_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28592 DIAG_CAN3_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28593 DIAG_CAN4_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28594 DIAG_CAN2_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28595 SupervisorMode = 0U;
28596 REAX_Current_Mode = 0U;
28597 REAX_Req_Mode = 0U;
28598 REAX_Status = 0U;
28599
28600 {
28601 int32_T i;
28602 for (i = 0; i < 100; i++) {
28603 GLB_SWVERSION_CPV_[i] = ((uint8_T)0U);
28604 }
28605 }
28606
28607 MABX_Mode = 0U;
28608 EStop = false;
28609 EnableSw = false;
28610 MABX_Heartbeat = false;
28611 EngageRequest = false;
28612 Heartbeat_Ok = false;
28613 RTMapsOk = false;
28614 LogEventPB = false;
28615 EngagePB = false;
28616 AutonomousEnabled = false;
28617 AutonomousOutputEnabled = false;
28618 RateLimiterActive = false;
28619 Pedal_pwm_position = 0.0;
28620
28621 /* states (dwork) */
28622 (void) memset((void *)&L4_MABX_DW, 0,
28623 sizeof(DW_L4_MABX_T));
28624
28625 /* child S-Function registration */
28626 {
28627 RTWSfcnInfo *sfcnInfo = &L4_MABX_M->NonInlinedSFcns.sfcnInfo;
28628 L4_MABX_M->sfcnInfo = (sfcnInfo);
28629 rtssSetErrorStatusPtr(sfcnInfo, (&rtmGetErrorStatus(L4_MABX_M)));
28630 rtssSetNumRootSampTimesPtr(sfcnInfo, &L4_MABX_M->Sizes.numSampTimes);
28631 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[0] = &(rtmGetTPtr(L4_MABX_M)[0]);
28632 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[1] = &(rtmGetTPtr(L4_MABX_M)[1]);
28633 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[2] = &(rtmGetTPtr(L4_MABX_M)[2]);
28634 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[3] = &(rtmGetTPtr(L4_MABX_M)[3]);
28635 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[4] = &(rtmGetTPtr(L4_MABX_M)[4]);
28636 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[5] = &(rtmGetTPtr(L4_MABX_M)[5]);
28637 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[6] = &(rtmGetTPtr(L4_MABX_M)[6]);
28638 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[7] = &(rtmGetTPtr(L4_MABX_M)[7]);
28639 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[8] = &(rtmGetTPtr(L4_MABX_M)[8]);
28640 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[9] = &(rtmGetTPtr(L4_MABX_M)[9]);
28641 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[10] = &(rtmGetTPtr(L4_MABX_M)[10]);
28642 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[11] = &(rtmGetTPtr(L4_MABX_M)[11]);
28643 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[12] = &(rtmGetTPtr(L4_MABX_M)[12]);
28644 rtssSetTPtrPtr(sfcnInfo,L4_MABX_M->NonInlinedSFcns.taskTimePtrs);
28645 rtssSetTStartPtr(sfcnInfo, &rtmGetTStart(L4_MABX_M));
28646 rtssSetTFinalPtr(sfcnInfo, &rtmGetTFinal(L4_MABX_M));
28647 rtssSetTimeOfLastOutputPtr(sfcnInfo, &rtmGetTimeOfLastOutput(L4_MABX_M));
28648 rtssSetStepSizePtr(sfcnInfo, &L4_MABX_M->Timing.stepSize);
28649 rtssSetStopRequestedPtr(sfcnInfo, &rtmGetStopRequested(L4_MABX_M));
28650 rtssSetDerivCacheNeedsResetPtr(sfcnInfo, &L4_MABX_M->derivCacheNeedsReset);
28651 rtssSetZCCacheNeedsResetPtr(sfcnInfo, &L4_MABX_M->zCCacheNeedsReset);
28652 rtssSetContTimeOutputInconsistentWithStateAtMajorStepPtr(sfcnInfo,
28653 &L4_MABX_M->CTOutputIncnstWithState);
28654 rtssSetSampleHitsPtr(sfcnInfo, &L4_MABX_M->Timing.sampleHits);
28655 rtssSetPerTaskSampleHitsPtr(sfcnInfo, &L4_MABX_M->Timing.perTaskSampleHits);
28656 rtssSetSimModePtr(sfcnInfo, &L4_MABX_M->simMode);
28657 rtssSetSolverInfoPtr(sfcnInfo, &L4_MABX_M->solverInfoPtr);
28658 }
28659
28660 L4_MABX_M->Sizes.numSFcns = (5);
28661
28662 /* register each child */
28663 {
28664 (void) memset((void *)&L4_MABX_M->NonInlinedSFcns.childSFunctions[0], 0,
28665 5*sizeof(SimStruct));
28666 L4_MABX_M->childSfunctions = (&L4_MABX_M->
28667 NonInlinedSFcns.childSFunctionPtrs[0]);
28668
28669 {
28670 int_T i;
28671 for (i = 0; i < 5; i++) {
28672 L4_MABX_M->childSfunctions[i] =
28673 (&L4_MABX_M->NonInlinedSFcns.childSFunctions[i]);
28674 }
28675 }
28676
28677 /* Level2 S-Function Block: L4_MABX/<S404>/dsa_tcpip_bkg_sfcn (dsa_tcpip_bkg_sfcn) */
28678 {
28679 SimStruct *rts = L4_MABX_M->childSfunctions[0];
28680
28681 /* timing info */
28682 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnPeriod;
28683 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnOffset;
28684 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnTsMap;
28685 (void) memset((void*)sfcnPeriod, 0,
28686 sizeof(time_T)*1);
28687 (void) memset((void*)sfcnOffset, 0,
28688 sizeof(time_T)*1);
28689 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28690 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28691 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28692
28693 {
28694 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[0]);
28695 }
28696
28697 _ssSetBlkInfo2PortInfo2Ptr(rts,
28698 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[0]);
28699
28700 /* Set up the mdlInfo pointer */
28701 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28702
28703 /* Allocate memory of model methods 2 */
28704 {
28705 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[0]);
28706 }
28707
28708 /* Allocate memory of model methods 3 */
28709 {
28710 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[0]);
28711 }
28712
28713 /* Allocate memory of model methods 4 */
28714 {
28715 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[0]);
28716 }
28717
28718 /* Allocate memory for states auxilliary information */
28719 {
28720 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[0]);
28721 ssSetPeriodicStatesInfo(rts,
28722 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[0]);
28723 }
28724
28725 /* path info */
28726 ssSetModelName(rts, "dsa_tcpip_bkg_sfcn");
28727 ssSetPath(rts,
28728 "L4_MABX/ETHERNET/TCPIP_Setup/Background_Task/dsa_tcpip_bkg_sfcn");
28729 ssSetRTModel(rts,L4_MABX_M);
28730 ssSetParentSS(rts, (NULL));
28731 ssSetRootSS(rts, rts);
28732 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28733
28734 /* work vectors */
28735 ssSetIWork(rts, (int_T *) &L4_MABX_DW.dsa_tcpip_bkg_sfcn_IWORK);
28736
28737 {
28738 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
28739 &L4_MABX_M->NonInlinedSFcns.Sfcn0.dWork;
28740 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
28741 &L4_MABX_M->NonInlinedSFcns.Sfcn0.dWorkAux;
28742 ssSetSFcnDWork(rts, dWorkRecord);
28743 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
28744 _ssSetNumDWork(rts, 1);
28745
28746 /* IWORK */
28747 ssSetDWorkWidth(rts, 0, 1);
28748 ssSetDWorkDataType(rts, 0,SS_INTEGER);
28749 ssSetDWorkComplexSignal(rts, 0, 0);
28750 ssSetDWork(rts, 0, &L4_MABX_DW.dsa_tcpip_bkg_sfcn_IWORK);
28751 }
28752
28753 /* registration */
28754 dsa_tcpip_bkg_sfcn(rts);
28755 sfcnInitializeSizes(rts);
28756 sfcnInitializeSampleTimes(rts);
28757
28758 /* adjust sample time */
28759 ssSetSampleTime(rts, 0, -1.0);
28760 ssSetOffsetTime(rts, 0, -2.0);
28761 sfcnTsMap[0] = 9;
28762
28763 /* set compiled values of dynamic vector attributes */
28764 ssSetNumNonsampledZCs(rts, 0);
28765
28766 /* Update connectivity flags for each port */
28767 /* Update the BufferDstPort flags for each input port */
28768 }
28769
28770 /* Level2 S-Function Block: L4_MABX/<S405>/dsa_tcpip_irq_l2_sfcn (dsa_tcpip_irq_l2_sfcn) */
28771 {
28772 SimStruct *rts = L4_MABX_M->childSfunctions[1];
28773
28774 /* timing info */
28775 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnPeriod;
28776 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnOffset;
28777 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnTsMap;
28778 (void) memset((void*)sfcnPeriod, 0,
28779 sizeof(time_T)*1);
28780 (void) memset((void*)sfcnOffset, 0,
28781 sizeof(time_T)*1);
28782 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28783 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28784 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28785
28786 {
28787 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[1]);
28788 }
28789
28790 _ssSetBlkInfo2PortInfo2Ptr(rts,
28791 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[1]);
28792
28793 /* Set up the mdlInfo pointer */
28794 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28795
28796 /* Allocate memory of model methods 2 */
28797 {
28798 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[1]);
28799 }
28800
28801 /* Allocate memory of model methods 3 */
28802 {
28803 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[1]);
28804 }
28805
28806 /* Allocate memory of model methods 4 */
28807 {
28808 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[1]);
28809 }
28810
28811 /* Allocate memory for states auxilliary information */
28812 {
28813 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[1]);
28814 ssSetPeriodicStatesInfo(rts,
28815 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[1]);
28816 }
28817
28818 /* path info */
28819 ssSetModelName(rts, "dsa_tcpip_irq_l2_sfcn");
28820 ssSetPath(rts,
28821 "L4_MABX/ETHERNET/TCPIP_Setup/IRQ_Level_2_SW_INT/dsa_tcpip_irq_l2_sfcn");
28822 ssSetRTModel(rts,L4_MABX_M);
28823 ssSetParentSS(rts, (NULL));
28824 ssSetRootSS(rts, rts);
28825 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28826
28827 /* registration */
28828 dsa_tcpip_irq_l2_sfcn(rts);
28829 sfcnInitializeSizes(rts);
28830 sfcnInitializeSampleTimes(rts);
28831
28832 /* adjust sample time */
28833 ssSetSampleTime(rts, 0, -1.0);
28834 ssSetOffsetTime(rts, 0, -3.0);
28835 sfcnTsMap[0] = 10;
28836
28837 /* set compiled values of dynamic vector attributes */
28838 ssSetNumNonsampledZCs(rts, 0);
28839
28840 /* Update connectivity flags for each port */
28841 /* Update the BufferDstPort flags for each input port */
28842 }
28843
28844 /* Level2 S-Function Block: L4_MABX/<S406>/dsa_tcpip_irq_l1_sfcn (dsa_tcpip_irq_l1_sfcn) */
28845 {
28846 SimStruct *rts = L4_MABX_M->childSfunctions[2];
28847
28848 /* timing info */
28849 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnPeriod;
28850 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnOffset;
28851 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnTsMap;
28852 (void) memset((void*)sfcnPeriod, 0,
28853 sizeof(time_T)*1);
28854 (void) memset((void*)sfcnOffset, 0,
28855 sizeof(time_T)*1);
28856 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28857 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28858 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28859
28860 {
28861 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[2]);
28862 }
28863
28864 _ssSetBlkInfo2PortInfo2Ptr(rts,
28865 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[2]);
28866
28867 /* Set up the mdlInfo pointer */
28868 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28869
28870 /* Allocate memory of model methods 2 */
28871 {
28872 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[2]);
28873 }
28874
28875 /* Allocate memory of model methods 3 */
28876 {
28877 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[2]);
28878 }
28879
28880 /* Allocate memory of model methods 4 */
28881 {
28882 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[2]);
28883 }
28884
28885 /* Allocate memory for states auxilliary information */
28886 {
28887 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[2]);
28888 ssSetPeriodicStatesInfo(rts,
28889 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[2]);
28890 }
28891
28892 /* outputs */
28893 {
28894 ssSetPortInfoForOutputs(rts,
28895 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortInfo[0]);
28896 _ssSetNumOutputPorts(rts, 1);
28897 _ssSetPortInfo2ForOutputUnits(rts,
28898 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortUnits[0]);
28899 ssSetOutputPortUnit(rts, 0, 0);
28900 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
28901 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortCoSimAttribute[0]);
28902 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
28903
28904 /* port 0 */
28905 {
28906 _ssSetOutputPortNumDimensions(rts, 0, 1);
28907 ssSetOutputPortWidth(rts, 0, 1);
28908 ssSetOutputPortSignal(rts, 0, (NULL));
28909 }
28910 }
28911
28912 /* path info */
28913 ssSetModelName(rts, "dsa_tcpip_irq_l1_sfcn");
28914 ssSetPath(rts,
28915 "L4_MABX/ETHERNET/TCPIP_Setup/Interrupt_Task/dsa_tcpip_irq_l1_sfcn");
28916 ssSetRTModel(rts,L4_MABX_M);
28917 ssSetParentSS(rts, (NULL));
28918 ssSetRootSS(rts, rts);
28919 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28920
28921 /* register function-calls */
28922 {
28923 int_T *callSysOutputs = (int_T *)
28924 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysOutputs;
28925 void **callSysArgs1 = (void **)
28926 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysArgs1;
28927 int_T *callSysArgs2 = (int_T *)
28928 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysArgs2;
28929 SysOutputFcn *callSysFcns = (SysOutputFcn *)
28930 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysFcns;
28931
28932 {
28933 int32_T i;
28934 for (i = 0; i < 1; i++) {
28935 callSysOutputs[i] = 0;
28936 callSysFcns[i] = (SysOutputFcn) (NULL);
28937 callSysFcns[1+i] = (SysOutputFcn) (NULL);
28938 callSysFcns[2*1+i] = (SysOutputFcn) (NULL);
28939 callSysFcns[3*1+i] = (SysOutputFcn) (NULL);
28940 }
28941 }
28942
28943 ssSetCallSystemOutputPtr(rts, &callSysOutputs[0]);
28944 ssSetCallSystemOutputArg1List(rts, &callSysArgs1[0]);
28945 ssSetCallSystemOutputArg2List(rts, &callSysArgs2[0]);
28946 ssSetCallSystemOutputFcnList(rts, &callSysFcns[0]);
28947 callSysArgs1[0] = (void *)L4_MABX_M;
28948 callSysArgs2[0] = 0;
28949 callSysFcns[0] = (SysOutputFcn) L4_MABX_TcpInputProcessingFNI;
28950 callSysFcns[1+0] = (SysOutputFcn) L4_TcpInputProcessing_ResetFNI;
28951 callSysFcns[2+0] = (SysOutputFcn) (NULL);
28952 callSysFcns[3+0] = (SysOutputFcn) (NULL);
28953 callSysOutputs[0] = 1;
28954 }
28955
28956 /* registration */
28957 dsa_tcpip_irq_l1_sfcn(rts);
28958 sfcnInitializeSizes(rts);
28959 sfcnInitializeSampleTimes(rts);
28960
28961 /* adjust sample time */
28962 ssSetSampleTime(rts, 0, -1.0);
28963 ssSetOffsetTime(rts, 0, -4.0);
28964 sfcnTsMap[0] = 11;
28965
28966 /* set compiled values of dynamic vector attributes */
28967 ssSetOutputPortWidth(rts, 0, 1);
28968 ssSetNumNonsampledZCs(rts, 0);
28969
28970 /* Update connectivity flags for each port */
28971 _ssSetOutputPortConnected(rts, 0, 1);
28972 _ssSetOutputPortBeingMerged(rts, 0, 0);
28973
28974 /* Update the BufferDstPort flags for each input port */
28975 }
28976
28977 /* Level2 S-Function Block: L4_MABX/<S393>/dsa_tcpip_setup (dsa_tcpip_setup_sfcn) */
28978 {
28979 SimStruct *rts = L4_MABX_M->childSfunctions[3];
28980
28981 /* timing info */
28982 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnPeriod;
28983 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnOffset;
28984 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnTsMap;
28985 (void) memset((void*)sfcnPeriod, 0,
28986 sizeof(time_T)*1);
28987 (void) memset((void*)sfcnOffset, 0,
28988 sizeof(time_T)*1);
28989 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28990 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28991 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28992
28993 {
28994 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[3]);
28995 }
28996
28997 _ssSetBlkInfo2PortInfo2Ptr(rts,
28998 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[3]);
28999
29000 /* Set up the mdlInfo pointer */
29001 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
29002
29003 /* Allocate memory of model methods 2 */
29004 {
29005 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[3]);
29006 }
29007
29008 /* Allocate memory of model methods 3 */
29009 {
29010 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[3]);
29011 }
29012
29013 /* Allocate memory of model methods 4 */
29014 {
29015 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[3]);
29016 }
29017
29018 /* Allocate memory for states auxilliary information */
29019 {
29020 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[3]);
29021 ssSetPeriodicStatesInfo(rts,
29022 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[3]);
29023 }
29024
29025 /* outputs */
29026 {
29027 ssSetPortInfoForOutputs(rts,
29028 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortInfo[0]);
29029 _ssSetNumOutputPorts(rts, 1);
29030 _ssSetPortInfo2ForOutputUnits(rts,
29031 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortUnits[0]);
29032 ssSetOutputPortUnit(rts, 0, 0);
29033 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
29034 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortCoSimAttribute[0]);
29035 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
29036
29037 /* port 0 */
29038 {
29039 _ssSetOutputPortNumDimensions(rts, 0, 1);
29040 ssSetOutputPortWidth(rts, 0, 1);
29041 ssSetOutputPortSignal(rts, 0, ((real_T *) &EthernetLinkStatus));
29042 }
29043 }
29044
29045 /* path info */
29046 ssSetModelName(rts, "dsa_tcpip_setup");
29047 ssSetPath(rts, "L4_MABX/ETHERNET/TCPIP_Setup/dsa_tcpip_setup");
29048 ssSetRTModel(rts,L4_MABX_M);
29049 ssSetParentSS(rts, (NULL));
29050 ssSetRootSS(rts, rts);
29051 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
29052
29053 /* parameters */
29054 {
29055 mxArray **sfcnParams = (mxArray **)
29056 &L4_MABX_M->NonInlinedSFcns.Sfcn3.params;
29057 ssSetSFcnParamsCount(rts, 6);
29058 ssSetSFcnParamsPtr(rts, &sfcnParams[0]);
29059 ssSetSFcnParam(rts, 0, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P1_Size);
29060 ssSetSFcnParam(rts, 1, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P2_Size);
29061 ssSetSFcnParam(rts, 2, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P3_Size);
29062 ssSetSFcnParam(rts, 3, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P4_Size);
29063 ssSetSFcnParam(rts, 4, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P5_Size);
29064 ssSetSFcnParam(rts, 5, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P6_Size);
29065 }
29066
29067 /* work vectors */
29068 ssSetIWork(rts, (int_T *) &L4_MABX_DW.dsa_tcpip_setup_IWORK);
29069 ssSetPWork(rts, (void **) &L4_MABX_DW.dsa_tcpip_setup_PWORK);
29070
29071 {
29072 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
29073 &L4_MABX_M->NonInlinedSFcns.Sfcn3.dWork;
29074 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
29075 &L4_MABX_M->NonInlinedSFcns.Sfcn3.dWorkAux;
29076 ssSetSFcnDWork(rts, dWorkRecord);
29077 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
29078 _ssSetNumDWork(rts, 2);
29079
29080 /* IWORK */
29081 ssSetDWorkWidth(rts, 0, 1);
29082 ssSetDWorkDataType(rts, 0,SS_INTEGER);
29083 ssSetDWorkComplexSignal(rts, 0, 0);
29084 ssSetDWork(rts, 0, &L4_MABX_DW.dsa_tcpip_setup_IWORK);
29085
29086 /* PWORK */
29087 ssSetDWorkWidth(rts, 1, 1);
29088 ssSetDWorkDataType(rts, 1,SS_POINTER);
29089 ssSetDWorkComplexSignal(rts, 1, 0);
29090 ssSetDWork(rts, 1, &L4_MABX_DW.dsa_tcpip_setup_PWORK);
29091 }
29092
29093 /* registration */
29094 dsa_tcpip_setup_sfcn(rts);
29095 sfcnInitializeSizes(rts);
29096 sfcnInitializeSampleTimes(rts);
29097
29098 /* adjust sample time */
29099 ssSetSampleTime(rts, 0, 0.01);
29100 ssSetOffsetTime(rts, 0, 0.0);
29101 sfcnTsMap[0] = 0;
29102
29103 /* set compiled values of dynamic vector attributes */
29104 ssSetNumNonsampledZCs(rts, 0);
29105
29106 /* Update connectivity flags for each port */
29107 _ssSetOutputPortConnected(rts, 0, 1);
29108 _ssSetOutputPortBeingMerged(rts, 0, 0);
29109
29110 /* Update the BufferDstPort flags for each input port */
29111 }
29112
29113 /* Level2 S-Function Block: L4_MABX/<S394>/TCPIP_Com (dsa_tcpip_udp_sfcn) */
29114 {
29115 SimStruct *rts = L4_MABX_M->childSfunctions[4];
29116
29117 /* timing info */
29118 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnPeriod;
29119 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnOffset;
29120 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnTsMap;
29121 (void) memset((void*)sfcnPeriod, 0,
29122 sizeof(time_T)*1);
29123 (void) memset((void*)sfcnOffset, 0,
29124 sizeof(time_T)*1);
29125 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
29126 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
29127 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
29128
29129 {
29130 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[4]);
29131 }
29132
29133 _ssSetBlkInfo2PortInfo2Ptr(rts,
29134 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[4]);
29135
29136 /* Set up the mdlInfo pointer */
29137 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
29138
29139 /* Allocate memory of model methods 2 */
29140 {
29141 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[4]);
29142 }
29143
29144 /* Allocate memory of model methods 3 */
29145 {
29146 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[4]);
29147 }
29148
29149 /* Allocate memory of model methods 4 */
29150 {
29151 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[4]);
29152 }
29153
29154 /* Allocate memory for states auxilliary information */
29155 {
29156 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[4]);
29157 ssSetPeriodicStatesInfo(rts,
29158 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[4]);
29159 }
29160
29161 /* inputs */
29162 {
29163 _ssSetNumInputPorts(rts, 3);
29164 ssSetPortInfoForInputs(rts,
29165 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortInfo[0]);
29166 _ssSetPortInfo2ForInputUnits(rts,
29167 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortUnits[0]);
29168 ssSetInputPortUnit(rts, 0, 0);
29169 ssSetInputPortUnit(rts, 1, 0);
29170 ssSetInputPortUnit(rts, 2, 0);
29171 _ssSetPortInfo2ForInputCoSimAttribute(rts,
29172 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortCoSimAttribute[0]);
29173 ssSetInputPortIsContinuousQuantity(rts, 0, 0);
29174 ssSetInputPortIsContinuousQuantity(rts, 1, 0);
29175 ssSetInputPortIsContinuousQuantity(rts, 2, 0);
29176
29177 /* port 0 */
29178 {
29179 boolean_T const **sfcnUPtrs = (boolean_T const **)
29180 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs0;
29181 sfcnUPtrs[0] = &L4_MABX_B.Enable;
29182 ssSetInputPortSignalPtrs(rts, 0, (InputPtrsType)&sfcnUPtrs[0]);
29183 _ssSetInputPortNumDimensions(rts, 0, 1);
29184 ssSetInputPortWidth(rts, 0, 1);
29185 }
29186
29187 /* port 1 */
29188 {
29189 uint32_T const **sfcnUPtrs = (uint32_T const **)
29190 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs1;
29191 sfcnUPtrs[0] = &L4_MABX_B.Encoder_o2;
29192 ssSetInputPortSignalPtrs(rts, 1, (InputPtrsType)&sfcnUPtrs[0]);
29193 _ssSetInputPortNumDimensions(rts, 1, 1);
29194 ssSetInputPortWidth(rts, 1, 1);
29195 }
29196
29197 /* port 2 */
29198 {
29199 uint8_T const **sfcnUPtrs = (uint8_T const **)
29200 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs2;
29201
29202 {
29203 int_T i1;
29204 const uint8_T *u2 = L4_MABX_B.Encoder_o1;
29205 for (i1=0; i1 < 23; i1++) {
29206 sfcnUPtrs[i1] = &u2[i1];
29207 }
29208 }
29209
29210 ssSetInputPortSignalPtrs(rts, 2, (InputPtrsType)&sfcnUPtrs[0]);
29211 _ssSetInputPortNumDimensions(rts, 2, 1);
29212 ssSetInputPortWidth(rts, 2, 23);
29213 }
29214 }
29215
29216 /* outputs */
29217 {
29218 ssSetPortInfoForOutputs(rts,
29219 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortInfo[0]);
29220 _ssSetNumOutputPorts(rts, 3);
29221 _ssSetPortInfo2ForOutputUnits(rts,
29222 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortUnits[0]);
29223 ssSetOutputPortUnit(rts, 0, 0);
29224 ssSetOutputPortUnit(rts, 1, 0);
29225 ssSetOutputPortUnit(rts, 2, 0);
29226 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
29227 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortCoSimAttribute[0]);
29228 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
29229 ssSetOutputPortIsContinuousQuantity(rts, 1, 0);
29230 ssSetOutputPortIsContinuousQuantity(rts, 2, 0);
29231
29232 /* port 0 */
29233 {
29234 _ssSetOutputPortNumDimensions(rts, 0, 1);
29235 ssSetOutputPortWidth(rts, 0, 3);
29236 ssSetOutputPortSignal(rts, 0, ((uint32_T *) L4_MABX_B.TCPIP_Com_o1));
29237 }
29238
29239 /* port 1 */
29240 {
29241 _ssSetOutputPortNumDimensions(rts, 1, 1);
29242 ssSetOutputPortWidth(rts, 1, 1);
29243 ssSetOutputPortSignal(rts, 1, ((uint32_T *) &L4_MABX_B.TCPIP_Com_o2));
29244 }
29245
29246 /* port 2 */
29247 {
29248 _ssSetOutputPortNumDimensions(rts, 2, 1);
29249 ssSetOutputPortWidth(rts, 2, 128);
29250 ssSetOutputPortSignal(rts, 2, ((uint8_T *) L4_MABX_B.TCPIP_Com_o3));
29251 }
29252 }
29253
29254 /* path info */
29255 ssSetModelName(rts, "TCPIP_Com");
29256 ssSetPath(rts, "L4_MABX/ETHERNET/UDPIP_Communication/TCPIP_Com");
29257 ssSetRTModel(rts,L4_MABX_M);
29258 ssSetParentSS(rts, (NULL));
29259 ssSetRootSS(rts, rts);
29260 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
29261
29262 /* parameters */
29263 {
29264 mxArray **sfcnParams = (mxArray **)
29265 &L4_MABX_M->NonInlinedSFcns.Sfcn4.params;
29266 ssSetSFcnParamsCount(rts, 6);
29267 ssSetSFcnParamsPtr(rts, &sfcnParams[0]);
29268 ssSetSFcnParam(rts, 0, (mxArray*)L4_MABX_P.TCPIP_Com_P1_Size);
29269 ssSetSFcnParam(rts, 1, (mxArray*)L4_MABX_P.TCPIP_Com_P2_Size);
29270 ssSetSFcnParam(rts, 2, (mxArray*)L4_MABX_P.TCPIP_Com_P3_Size);
29271 ssSetSFcnParam(rts, 3, (mxArray*)L4_MABX_P.TCPIP_Com_P4_Size);
29272 ssSetSFcnParam(rts, 4, (mxArray*)L4_MABX_P.TCPIP_Com_P5_Size);
29273 ssSetSFcnParam(rts, 5, (mxArray*)L4_MABX_P.TCPIP_Com_P6_Size);
29274 }
29275
29276 /* work vectors */
29277 ssSetPWork(rts, (void **) &L4_MABX_DW.TCPIP_Com_PWORK);
29278
29279 {
29280 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
29281 &L4_MABX_M->NonInlinedSFcns.Sfcn4.dWork;
29282 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
29283 &L4_MABX_M->NonInlinedSFcns.Sfcn4.dWorkAux;
29284 ssSetSFcnDWork(rts, dWorkRecord);
29285 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
29286 _ssSetNumDWork(rts, 1);
29287
29288 /* PWORK */
29289 ssSetDWorkWidth(rts, 0, 1);
29290 ssSetDWorkDataType(rts, 0,SS_POINTER);
29291 ssSetDWorkComplexSignal(rts, 0, 0);
29292 ssSetDWork(rts, 0, &L4_MABX_DW.TCPIP_Com_PWORK);
29293 }
29294
29295 /* registration */
29296 dsa_tcpip_udp_sfcn(rts);
29297 sfcnInitializeSizes(rts);
29298 sfcnInitializeSampleTimes(rts);
29299
29300 /* adjust sample time */
29301 ssSetSampleTime(rts, 0, 0.01);
29302 ssSetOffsetTime(rts, 0, 0.0);
29303 sfcnTsMap[0] = 0;
29304
29305 /* set compiled values of dynamic vector attributes */
29306 ssSetNumNonsampledZCs(rts, 0);
29307
29308 /* Update connectivity flags for each port */
29309 _ssSetInputPortConnected(rts, 0, 1);
29310 _ssSetInputPortConnected(rts, 1, 1);
29311 _ssSetInputPortConnected(rts, 2, 1);
29312 _ssSetOutputPortConnected(rts, 0, 1);
29313 _ssSetOutputPortConnected(rts, 1, 1);
29314 _ssSetOutputPortConnected(rts, 2, 1);
29315 _ssSetOutputPortBeingMerged(rts, 0, 0);
29316 _ssSetOutputPortBeingMerged(rts, 1, 0);
29317 _ssSetOutputPortBeingMerged(rts, 2, 0);
29318
29319 /* Update the BufferDstPort flags for each input port */
29320 ssSetInputPortBufferDstPort(rts, 0, -1);
29321 ssSetInputPortBufferDstPort(rts, 1, -1);
29322 ssSetInputPortBufferDstPort(rts, 2, -1);
29323 }
29324 }
29325
29326 {
29327 /* user code (registration function declaration) */
29328 /*Initialize global TRC pointers. */
29329 L4_MABX_rti_init_trc_pointers();
29330 }
29331
29332 /* Start for Enabled SubSystem: '<S737>/Slew_at_event' */
29333 L4_MABX_DW.Slew_at_event_MODE = false;
29334
29335 /* End of Start for SubSystem: '<S737>/Slew_at_event' */
29336
29337 /* Start for S-Function (dsa_tcpip_setup_sfcn): '<S393>/dsa_tcpip_setup' */
29338 /* Level2 S-Function Block: '<S393>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
29339 {
29340 SimStruct *rts = L4_MABX_M->childSfunctions[3];
29341 sfcnStart(rts);
29342 if (ssGetErrorStatus(rts) != (NULL))
29343 return;
29344 }
29345
29346 /* Start for Constant: '<S3>/Enable' */
29347 L4_MABX_B.Enable = L4_MABX_P.Enable_Value;
29348
29349 /* Start for S-Function (dsa_gen_tx_RTMapsEncode_sfun): '<S400>/Encoder' */
29350 Init_Tx_RTMapsEncode();
29351
29352 /* Start for S-Function (dsa_tcpip_udp_sfcn): '<S394>/TCPIP_Com' */
29353 /* Level2 S-Function Block: '<S394>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
29354 {
29355 SimStruct *rts = L4_MABX_M->childSfunctions[4];
29356 sfcnStart(rts);
29357 if (ssGetErrorStatus(rts) != (NULL))
29358 return;
29359 }
29360
29361 /* Start for S-Function (dsa_gen_rx_RTMapsDecode_sfun): '<S397>/Decoder' */
29362 Init_Rx_RTMapsDecode();
29363
29364 /* Start for Atomic SubSystem: '<S65>/Task_10ms' */
29365 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
29366 L4_MABX_B.distanceSpdTarget_e = L4_MABX_P.TmpRTBAtSignalConversion1Inport;
29367
29368 /* Start for Enabled SubSystem: '<S79>/Throttle_controller_gov' */
29369 L4_MABX_DW.Throttle_controller_gov_MODE = false;
29370
29371 /* Start for Enabled SubSystem: '<S238>/Calculate_D_term' */
29372 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term_h);
29373
29374 /* End of Start for SubSystem: '<S238>/Calculate_D_term' */
29375
29376 /* Start for Enabled SubSystem: '<S238>/Calculate_I_term' */
29377 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term_n);
29378
29379 /* End of Start for SubSystem: '<S238>/Calculate_I_term' */
29380
29381 /* End of Start for SubSystem: '<S79>/Throttle_controller_gov' */
29382
29383 /* Start for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
29384 L4_MABX_DW.Determine_shift_interlock_brake = false;
29385
29386 /* End of Start for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
29387
29388 /* Start for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
29389 L4_MABX_DW.Determine_brake_hold_pressure_t = false;
29390
29391 /* End of Start for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
29392
29393 /* Start for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
29394 L4_MABX_DW.Bendix_2C2_brake_application_pr = false;
29395
29396 /* Start for Enabled SubSystem: '<S106>/Calculate_D_term' */
29397 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term);
29398
29399 /* End of Start for SubSystem: '<S106>/Calculate_D_term' */
29400
29401 /* Start for Enabled SubSystem: '<S106>/Calculate_I_term' */
29402 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term);
29403
29404 /* End of Start for SubSystem: '<S106>/Calculate_I_term' */
29405
29406 /* End of Start for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
29407
29408 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
29409 L4_MABX_B.pathSpdLimit_a = L4_MABX_P.TmpRTBAtSignalConversion3Inport;
29410
29411 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
29412 L4_MABX_B.distance_o = L4_MABX_P.TmpRTBAtSignalConversion2Inport;
29413
29414 /* Start for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
29415 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = false;
29416
29417 /* Start for Enabled SubSystem: '<S144>/Calculate_D_term' */
29418 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term_p);
29419
29420 /* End of Start for SubSystem: '<S144>/Calculate_D_term' */
29421
29422 /* Start for Enabled SubSystem: '<S144>/Calculate_I_term' */
29423 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term_e);
29424
29425 /* End of Start for SubSystem: '<S144>/Calculate_I_term' */
29426
29427 /* End of Start for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
29428
29429 /* Start for Enabled SubSystem: '<S79>/Engine_speed_target' */
29430 L4_MABX_DW.Engine_speed_target_MODE = false;
29431
29432 /* End of Start for SubSystem: '<S79>/Engine_speed_target' */
29433
29434 /* Start for Enabled SubSystem: '<S277>/Slew_at_event' */
29435 L4_MABX_DW.Slew_at_event_MODE_d = false;
29436
29437 /* End of Start for SubSystem: '<S277>/Slew_at_event' */
29438
29439 /* Start for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
29440 L4_MABX_B.previewSteeringAngle_b = L4_MABX_P.TmpRTBAtrad2deg1Inport1_Initial;
29441
29442 /* Start for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
29443 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1 =
29444 L4_MABX_P.TmpRTBAtsignCurveOffsetInport1_;
29445
29446 /* Start for RateTransition: '<S278>/TmpRTBAtAdd2Inport2' */
29447 L4_MABX_B.TmpRTBAtAdd2Inport2 = L4_MABX_P.TmpRTBAtAdd2Inport2_InitialCond;
29448
29449 /* End of Start for SubSystem: '<S65>/Task_10ms' */
29450
29451 /* Start for Atomic SubSystem: '<S834>/CAN_TX_10ms' */
29452
29453 /* Start for Width: '<S991>/Width' */
29454 L4_MABX_B.Width_p = 16U;
29455
29456 /* End of Start for SubSystem: '<S834>/CAN_TX_10ms' */
29457
29458 /* Start for Atomic SubSystem: '<S834>/CAN_TX_20ms' */
29459
29460 /* Start for Width: '<S1019>/Width' */
29461 L4_MABX_B.Width_f = 16U;
29462
29463 /* End of Start for SubSystem: '<S834>/CAN_TX_20ms' */
29464
29465 /* Start for Atomic SubSystem: '<S834>/CAN_TX_5000ms' */
29466
29467 /* Start for Width: '<S1034>/Width' */
29468 L4_MABX_B.Width = 8U;
29469
29470 /* End of Start for SubSystem: '<S834>/CAN_TX_5000ms' */
29471
29472 /* Start for RateTransition: '<S1063>/TmpRTBAtANDInport1' */
29473 L4_MABX_B.TmpRTBAtANDInport1 = L4_MABX_P.TmpRTBAtANDInport1_InitialCondi;
29474
29475 /* Start for Atomic SubSystem: '<S65>/Task_20ms' */
29476 /* Start for Constant: '<S390>/InitialHeading' */
29477 L4_MABX_B.InitialHeading = L4_MABX_P.InitialHeading_Value;
29478
29479 /* Start for Constant: '<S390>/InitialPosition' */
29480 L4_MABX_B.InitialPosition = L4_MABX_P.InitialPosition_Value;
29481
29482 /* Start for Constant: '<S390>/InitialXPosition' */
29483 L4_MABX_B.InitialXPosition = L4_MABX_P.InitialXPosition_Value;
29484
29485 /* Start for Constant: '<S390>/InitialYPosition' */
29486 L4_MABX_B.InitialYPosition = L4_MABX_P.InitialYPosition_Value;
29487
29488 /* End of Start for SubSystem: '<S65>/Task_20ms' */
29489
29490 /* Start for S-Function (rti_commonblock): '<S403>/S-Function1' incorporates:
29491 * SubSystem: '<S393>/Background_Task'
29492 */
29493 L4_MA_Background_Task_Start();
29494
29495 /* End of Start for S-Function (rti_commonblock): '<S403>/S-Function1' */
29496
29497 /* Start for S-Function (rti_commonblock): '<S409>/S-Function1' incorporates:
29498 * SubSystem: '<S393>/Interrupt_Task'
29499 */
29500 L4_MAB_Interrupt_Task_Start();
29501
29502 /* End of Start for S-Function (rti_commonblock): '<S409>/S-Function1' */
29503 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29504 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29505 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29506 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29507 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29508 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29509 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_c = POS_ZCSIG;
29510 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE = POS_ZCSIG;
29511
29512 {
29513 int32_T i;
29514
29515 /* InitializeConditions for UnitDelay: '<S781>/FixPt Unit Delay2' */
29516 L4_MABX_DW.FixPtUnitDelay2_DSTATE =
29517 L4_MABX_P.FixPtUnitDelay2_InitialCondit_j;
29518
29519 /* InitializeConditions for UnitDelay: '<S781>/FixPt Unit Delay1' */
29520 L4_MABX_DW.FixPtUnitDelay1_DSTATE =
29521 L4_MABX_P.FixPtUnitDelay1_InitialCondi_ds;
29522
29523 /* InitializeConditions for UnitDelay: '<S773>/FixPt Unit Delay2' */
29524 L4_MABX_DW.FixPtUnitDelay2_DSTATE_a =
29525 L4_MABX_P.FixPtUnitDelay2_InitialCondit_o;
29526
29527 /* InitializeConditions for UnitDelay: '<S773>/FixPt Unit Delay1' */
29528 L4_MABX_DW.FixPtUnitDelay1_DSTATE_h =
29529 L4_MABX_P.FixPtUnitDelay1_InitialCondi_px;
29530
29531 /* InitializeConditions for UnitDelay: '<S797>/FixPt Unit Delay2' */
29532 L4_MABX_DW.FixPtUnitDelay2_DSTATE_i =
29533 L4_MABX_P.FixPtUnitDelay2_InitialCondit_k;
29534
29535 /* InitializeConditions for UnitDelay: '<S797>/FixPt Unit Delay1' */
29536 L4_MABX_DW.FixPtUnitDelay1_DSTATE_l =
29537 L4_MABX_P.FixPtUnitDelay1_InitialCondi_br;
29538
29539 /* InitializeConditions for UnitDelay: '<S789>/FixPt Unit Delay2' */
29540 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j =
29541 L4_MABX_P.FixPtUnitDelay2_InitialCondi_ep;
29542
29543 /* InitializeConditions for UnitDelay: '<S789>/FixPt Unit Delay1' */
29544 L4_MABX_DW.FixPtUnitDelay1_DSTATE_c =
29545 L4_MABX_P.FixPtUnitDelay1_InitialCondit_a;
29546
29547 /* InitializeConditions for UnitDelay: '<S751>/Unit_Delay' */
29548 L4_MABX_DW.Unit_Delay_DSTATE_gn = L4_MABX_P.Unit_Delay_InitialCondition_bk;
29549
29550 /* InitializeConditions for UnitDelay: '<S818>/Unit_Delay1' */
29551 L4_MABX_DW.Unit_Delay1_DSTATE = L4_MABX_P.Unit_Delay1_InitialCondition_c;
29552
29553 /* InitializeConditions for UnitDelay: '<S818>/Unit_Delay2' */
29554 L4_MABX_DW.Unit_Delay2_DSTATE = L4_MABX_P.Unit_Delay2_InitialCondition_o;
29555
29556 /* InitializeConditions for UnitDelay: '<S751>/Unit_Delay1' */
29557 L4_MABX_DW.Unit_Delay1_DSTATE_e = L4_MABX_P.Unit_Delay1_InitialCondition_b;
29558
29559 /* InitializeConditions for UnitDelay: '<S819>/Unit_Delay1' */
29560 L4_MABX_DW.Unit_Delay1_DSTATE_ef = L4_MABX_P.Unit_Delay1_InitialCondition_ax;
29561
29562 /* InitializeConditions for UnitDelay: '<S819>/Unit_Delay2' */
29563 L4_MABX_DW.Unit_Delay2_DSTATE_d = L4_MABX_P.Unit_Delay2_InitialCondition_i;
29564
29565 /* InitializeConditions for UnitDelay: '<S817>/FixPt Unit Delay2' */
29566 L4_MABX_DW.FixPtUnitDelay2_DSTATE_n =
29567 L4_MABX_P.FixPtUnitDelay2_InitialCondi_an;
29568
29569 /* InitializeConditions for UnitDelay: '<S817>/FixPt Unit Delay1' */
29570 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hb =
29571 L4_MABX_P.FixPtUnitDelay1_InitialCond_pxh;
29572
29573 /* InitializeConditions for UnitDelay: '<S816>/FixPt Unit Delay2' */
29574 L4_MABX_DW.FixPtUnitDelay2_DSTATE_m =
29575 L4_MABX_P.FixPtUnitDelay2_InitialCondi_c4;
29576
29577 /* InitializeConditions for UnitDelay: '<S816>/FixPt Unit Delay1' */
29578 L4_MABX_DW.FixPtUnitDelay1_DSTATE_e =
29579 L4_MABX_P.FixPtUnitDelay1_InitialCondit_i;
29580
29581 /* InitializeConditions for UnitDelay: '<S805>/FixPt Unit Delay2' */
29582 L4_MABX_DW.FixPtUnitDelay2_DSTATE_c =
29583 L4_MABX_P.FixPtUnitDelay2_InitialCondit_n;
29584
29585 /* InitializeConditions for UnitDelay: '<S805>/FixPt Unit Delay1' */
29586 L4_MABX_DW.FixPtUnitDelay1_DSTATE_ea =
29587 L4_MABX_P.FixPtUnitDelay1_InitialCondi_ab;
29588
29589 /* InitializeConditions for RateTransition: '<S412>/Rate Transition' */
29590 L4_MABX_DW.RateTransition_Buffer0 =
29591 L4_MABX_P.RateTransition_InitialCondition;
29592 L4_MABX_DW.RateTransition_write_buf = -1;
29593 L4_MABX_DW.RateTransition_read_buf = -1;
29594
29595 /* InitializeConditions for UnitDelay: '<S644>/Unit_Delay3' */
29596 L4_MABX_DW.Unit_Delay3_DSTATE = L4_MABX_P.Unit_Delay3_InitialCondition;
29597
29598 /* InitializeConditions for UnitDelay: '<S644>/Unit_Delay' */
29599 L4_MABX_DW.Unit_Delay_DSTATE_k = L4_MABX_P.Unit_Delay_InitialCondition_oc;
29600
29601 /* InitializeConditions for UnitDelay: '<S650>/Unit_Delay' */
29602 L4_MABX_DW.Unit_Delay_DSTATE_of = L4_MABX_P.Unit_Delay_InitialCondition_hy;
29603
29604 /* InitializeConditions for S-Function (dsa_tcpip_setup_sfcn): '<S393>/dsa_tcpip_setup' */
29605 /* Level2 S-Function Block: '<S393>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
29606 {
29607 SimStruct *rts = L4_MABX_M->childSfunctions[3];
29608 sfcnInitializeConditions(rts);
29609 if (ssGetErrorStatus(rts) != (NULL))
29610 return;
29611 }
29612
29613 /* InitializeConditions for DiscretePulseGenerator: '<S392>/Heartbeat' */
29614 L4_MABX_DW.clockTickCounter = 0;
29615
29616 /* InitializeConditions for UnitDelay: '<S3>/Unit_Delay' */
29617 L4_MABX_DW.Unit_Delay_79_DSTATE = L4_MABX_P.Unit_Delay_79_InitialCondition;
29618 L4_MABX_DW.Unit_Delay_80_DSTATE = L4_MABX_P.Unit_Delay_80_InitialCondition;
29619 L4_MABX_DW.Unit_Delay_81_DSTATE = L4_MABX_P.Unit_Delay_81_InitialCondition;
29620 L4_MABX_DW.Unit_Delay_140_DSTATE = L4_MABX_P.Unit_Delay_140_InitialCondition;
29621 L4_MABX_DW.Unit_Delay_139_DSTATE = L4_MABX_P.Unit_Delay_139_InitialCondition;
29622 L4_MABX_DW.Unit_Delay_82_DSTATE = L4_MABX_P.Unit_Delay_82_InitialCondition;
29623 L4_MABX_DW.Unit_Delay_45_DSTATE = L4_MABX_P.Unit_Delay_45_InitialCondition;
29624 L4_MABX_DW.Unit_Delay_47_DSTATE = L4_MABX_P.Unit_Delay_47_InitialCondition;
29625
29626 /* InitializeConditions for S-Function (dsa_tcpip_udp_sfcn): '<S394>/TCPIP_Com' */
29627 /* Level2 S-Function Block: '<S394>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
29628 {
29629 SimStruct *rts = L4_MABX_M->childSfunctions[4];
29630 sfcnInitializeConditions(rts);
29631 if (ssGetErrorStatus(rts) != (NULL))
29632 return;
29633 }
29634
29635 /* InitializeConditions for UnitDelay: '<S398>/Delay Input1' */
29636 L4_MABX_DW.DelayInput1_DSTATE_n = L4_MABX_P.DetectRisePositive1_vinit;
29637
29638 /* InitializeConditions for UnitDelay: '<S396>/Unit Delay' */
29639 L4_MABX_DW.UnitDelay_DSTATE = L4_MABX_P.UnitDelay_InitialCondition_h;
29640
29641 /* InitializeConditions for UnitDelay: '<S844>/Unit Delay2' */
29642 L4_MABX_DW.UnitDelay2_DSTATE = L4_MABX_P.UnitDelay2_InitialCondition;
29643
29644 /* InitializeConditions for UnitDelay: '<S844>/Unit Delay1' */
29645 L4_MABX_DW.UnitDelay1_DSTATE_h = L4_MABX_P.UnitDelay1_InitialCondition_ph;
29646
29647 /* InitializeConditions for UnitDelay: '<S844>/Unit Delay3' */
29648 L4_MABX_DW.UnitDelay3_DSTATE = L4_MABX_P.UnitDelay3_InitialCondition;
29649
29650 /* InitializeConditions for RateTransition: '<S1063>/TmpRTBAtANDInport1' */
29651 L4_MABX_DW.TmpRTBAtANDInport1_Buffer0 =
29652 L4_MABX_P.TmpRTBAtANDInport1_InitialCondi;
29653
29654 /* InitializeConditions for DiscretePulseGenerator: '<S1063>/Flash' */
29655 L4_MABX_DW.clockTickCounter_j = 0;
29656
29657 /* InitializeConditions for UnitDelay: '<S3>/Unit_Delay' */
29658 L4_MABX_DW.Unit_Delay_1_DSTATE = L4_MABX_P.Unit_Delay_1_InitialCondition_f;
29659 L4_MABX_DW.Unit_Delay_10_DSTATE = L4_MABX_P.Unit_Delay_10_InitialCondition;
29660 L4_MABX_DW.Unit_Delay_100_DSTATE = L4_MABX_P.Unit_Delay_100_InitialCondition;
29661 L4_MABX_DW.Unit_Delay_101_DSTATE = L4_MABX_P.Unit_Delay_101_InitialCondition;
29662 L4_MABX_DW.Unit_Delay_102_DSTATE = L4_MABX_P.Unit_Delay_102_InitialCondition;
29663 L4_MABX_DW.Unit_Delay_103_DSTATE = L4_MABX_P.Unit_Delay_103_InitialCondition;
29664 L4_MABX_DW.Unit_Delay_104_DSTATE = L4_MABX_P.Unit_Delay_104_InitialCondition;
29665 L4_MABX_DW.Unit_Delay_105_DSTATE = L4_MABX_P.Unit_Delay_105_InitialCondition;
29666 L4_MABX_DW.Unit_Delay_106_DSTATE = L4_MABX_P.Unit_Delay_106_InitialCondition;
29667 L4_MABX_DW.Unit_Delay_107_DSTATE = L4_MABX_P.Unit_Delay_107_InitialCondition;
29668 L4_MABX_DW.Unit_Delay_108_DSTATE = L4_MABX_P.Unit_Delay_108_InitialCondition;
29669 L4_MABX_DW.Unit_Delay_109_DSTATE = L4_MABX_P.Unit_Delay_109_InitialCondition;
29670 L4_MABX_DW.Unit_Delay_11_DSTATE = L4_MABX_P.Unit_Delay_11_InitialCondition;
29671 L4_MABX_DW.Unit_Delay_110_DSTATE = L4_MABX_P.Unit_Delay_110_InitialCondition;
29672 L4_MABX_DW.Unit_Delay_111_DSTATE = L4_MABX_P.Unit_Delay_111_InitialCondition;
29673 L4_MABX_DW.Unit_Delay_112_DSTATE = L4_MABX_P.Unit_Delay_112_InitialCondition;
29674 L4_MABX_DW.Unit_Delay_113_DSTATE = L4_MABX_P.Unit_Delay_113_InitialCondition;
29675 L4_MABX_DW.Unit_Delay_114_DSTATE = L4_MABX_P.Unit_Delay_114_InitialCondition;
29676 L4_MABX_DW.Unit_Delay_115_DSTATE = L4_MABX_P.Unit_Delay_115_InitialCondition;
29677 L4_MABX_DW.Unit_Delay_116_DSTATE = L4_MABX_P.Unit_Delay_116_InitialCondition;
29678 L4_MABX_DW.Unit_Delay_117_DSTATE = L4_MABX_P.Unit_Delay_117_InitialCondition;
29679 L4_MABX_DW.Unit_Delay_118_DSTATE = L4_MABX_P.Unit_Delay_118_InitialCondition;
29680 L4_MABX_DW.Unit_Delay_119_DSTATE = L4_MABX_P.Unit_Delay_119_InitialCondition;
29681 L4_MABX_DW.Unit_Delay_12_DSTATE = L4_MABX_P.Unit_Delay_12_InitialCondition;
29682 L4_MABX_DW.Unit_Delay_120_DSTATE = L4_MABX_P.Unit_Delay_120_InitialCondition;
29683 L4_MABX_DW.Unit_Delay_121_DSTATE = L4_MABX_P.Unit_Delay_121_InitialCondition;
29684 L4_MABX_DW.Unit_Delay_122_DSTATE = L4_MABX_P.Unit_Delay_122_InitialCondition;
29685 L4_MABX_DW.Unit_Delay_123_DSTATE = L4_MABX_P.Unit_Delay_123_InitialCondition;
29686 L4_MABX_DW.Unit_Delay_124_DSTATE = L4_MABX_P.Unit_Delay_124_InitialCondition;
29687 L4_MABX_DW.Unit_Delay_125_DSTATE = L4_MABX_P.Unit_Delay_125_InitialCondition;
29688 L4_MABX_DW.Unit_Delay_126_DSTATE = L4_MABX_P.Unit_Delay_126_InitialCondition;
29689 L4_MABX_DW.Unit_Delay_127_DSTATE = L4_MABX_P.Unit_Delay_127_InitialCondition;
29690 L4_MABX_DW.Unit_Delay_128_DSTATE = L4_MABX_P.Unit_Delay_128_InitialCondition;
29691 L4_MABX_DW.Unit_Delay_129_DSTATE = L4_MABX_P.Unit_Delay_129_InitialCondition;
29692 L4_MABX_DW.Unit_Delay_13_DSTATE = L4_MABX_P.Unit_Delay_13_InitialCondition;
29693 L4_MABX_DW.Unit_Delay_130_DSTATE = L4_MABX_P.Unit_Delay_130_InitialCondition;
29694 L4_MABX_DW.Unit_Delay_131_DSTATE = L4_MABX_P.Unit_Delay_131_InitialCondition;
29695 L4_MABX_DW.Unit_Delay_132_DSTATE = L4_MABX_P.Unit_Delay_132_InitialCondition;
29696 L4_MABX_DW.Unit_Delay_133_DSTATE = L4_MABX_P.Unit_Delay_133_InitialCondition;
29697 L4_MABX_DW.Unit_Delay_134_DSTATE = L4_MABX_P.Unit_Delay_134_InitialCondition;
29698 L4_MABX_DW.Unit_Delay_135_DSTATE = L4_MABX_P.Unit_Delay_135_InitialCondition;
29699 L4_MABX_DW.Unit_Delay_136_DSTATE = L4_MABX_P.Unit_Delay_136_InitialCondition;
29700 L4_MABX_DW.Unit_Delay_137_DSTATE = L4_MABX_P.Unit_Delay_137_InitialCondition;
29701 L4_MABX_DW.Unit_Delay_138_DSTATE = L4_MABX_P.Unit_Delay_138_InitialCondition;
29702 L4_MABX_DW.Unit_Delay_14_DSTATE = L4_MABX_P.Unit_Delay_14_InitialCondition;
29703 L4_MABX_DW.Unit_Delay_141_DSTATE = L4_MABX_P.Unit_Delay_141_InitialCondition;
29704 L4_MABX_DW.Unit_Delay_142_DSTATE = L4_MABX_P.Unit_Delay_142_InitialCondition;
29705 L4_MABX_DW.Unit_Delay_15_DSTATE = L4_MABX_P.Unit_Delay_15_InitialCondition;
29706 L4_MABX_DW.Unit_Delay_16_DSTATE = L4_MABX_P.Unit_Delay_16_InitialCondition;
29707 L4_MABX_DW.Unit_Delay_17_DSTATE = L4_MABX_P.Unit_Delay_17_InitialCondition;
29708 L4_MABX_DW.Unit_Delay_18_DSTATE = L4_MABX_P.Unit_Delay_18_InitialCondition;
29709 L4_MABX_DW.Unit_Delay_19_DSTATE = L4_MABX_P.Unit_Delay_19_InitialCondition;
29710 L4_MABX_DW.Unit_Delay_2_DSTATE = L4_MABX_P.Unit_Delay_2_InitialCondition_f;
29711 L4_MABX_DW.Unit_Delay_20_DSTATE = L4_MABX_P.Unit_Delay_20_InitialCondition;
29712 L4_MABX_DW.Unit_Delay_21_DSTATE = L4_MABX_P.Unit_Delay_21_InitialCondition;
29713 L4_MABX_DW.Unit_Delay_22_DSTATE = L4_MABX_P.Unit_Delay_22_InitialCondition;
29714 L4_MABX_DW.Unit_Delay_23_DSTATE = L4_MABX_P.Unit_Delay_23_InitialCondition;
29715 L4_MABX_DW.Unit_Delay_24_DSTATE = L4_MABX_P.Unit_Delay_24_InitialCondition;
29716 L4_MABX_DW.Unit_Delay_25_DSTATE = L4_MABX_P.Unit_Delay_25_InitialCondition;
29717 L4_MABX_DW.Unit_Delay_26_DSTATE = L4_MABX_P.Unit_Delay_26_InitialCondition;
29718 L4_MABX_DW.Unit_Delay_27_DSTATE = L4_MABX_P.Unit_Delay_27_InitialCondition;
29719 L4_MABX_DW.Unit_Delay_28_DSTATE = L4_MABX_P.Unit_Delay_28_InitialCondition;
29720 L4_MABX_DW.Unit_Delay_29_DSTATE = L4_MABX_P.Unit_Delay_29_InitialCondition;
29721 L4_MABX_DW.Unit_Delay_3_DSTATE = L4_MABX_P.Unit_Delay_3_InitialCondition_f;
29722 L4_MABX_DW.Unit_Delay_30_DSTATE = L4_MABX_P.Unit_Delay_30_InitialCondition;
29723 L4_MABX_DW.Unit_Delay_31_DSTATE = L4_MABX_P.Unit_Delay_31_InitialCondition;
29724 L4_MABX_DW.Unit_Delay_32_DSTATE = L4_MABX_P.Unit_Delay_32_InitialCondition;
29725 L4_MABX_DW.Unit_Delay_33_DSTATE = L4_MABX_P.Unit_Delay_33_InitialCondition;
29726 L4_MABX_DW.Unit_Delay_34_DSTATE = L4_MABX_P.Unit_Delay_34_InitialCondition;
29727 L4_MABX_DW.Unit_Delay_35_DSTATE = L4_MABX_P.Unit_Delay_35_InitialCondition;
29728 L4_MABX_DW.Unit_Delay_36_DSTATE = L4_MABX_P.Unit_Delay_36_InitialCondition;
29729 L4_MABX_DW.Unit_Delay_37_DSTATE = L4_MABX_P.Unit_Delay_37_InitialCondition;
29730 L4_MABX_DW.Unit_Delay_38_DSTATE = L4_MABX_P.Unit_Delay_38_InitialCondition;
29731 L4_MABX_DW.Unit_Delay_39_DSTATE = L4_MABX_P.Unit_Delay_39_InitialCondition;
29732 L4_MABX_DW.Unit_Delay_4_DSTATE = L4_MABX_P.Unit_Delay_4_InitialCondition;
29733 L4_MABX_DW.Unit_Delay_40_DSTATE = L4_MABX_P.Unit_Delay_40_InitialCondition;
29734 L4_MABX_DW.Unit_Delay_41_DSTATE = L4_MABX_P.Unit_Delay_41_InitialCondition;
29735 L4_MABX_DW.Unit_Delay_42_DSTATE = L4_MABX_P.Unit_Delay_42_InitialCondition;
29736 L4_MABX_DW.Unit_Delay_43_DSTATE = L4_MABX_P.Unit_Delay_43_InitialCondition;
29737 L4_MABX_DW.Unit_Delay_44_DSTATE = L4_MABX_P.Unit_Delay_44_InitialCondition;
29738 L4_MABX_DW.Unit_Delay_46_DSTATE = L4_MABX_P.Unit_Delay_46_InitialCondition;
29739 L4_MABX_DW.Unit_Delay_48_DSTATE = L4_MABX_P.Unit_Delay_48_InitialCondition;
29740 L4_MABX_DW.Unit_Delay_49_DSTATE = L4_MABX_P.Unit_Delay_49_InitialCondition;
29741 L4_MABX_DW.Unit_Delay_5_DSTATE = L4_MABX_P.Unit_Delay_5_InitialCondition;
29742 L4_MABX_DW.Unit_Delay_50_DSTATE = L4_MABX_P.Unit_Delay_50_InitialCondition;
29743 L4_MABX_DW.Unit_Delay_51_DSTATE = L4_MABX_P.Unit_Delay_51_InitialCondition;
29744 L4_MABX_DW.Unit_Delay_52_DSTATE = L4_MABX_P.Unit_Delay_52_InitialCondition;
29745 L4_MABX_DW.Unit_Delay_53_DSTATE = L4_MABX_P.Unit_Delay_53_InitialCondition;
29746 L4_MABX_DW.Unit_Delay_54_DSTATE = L4_MABX_P.Unit_Delay_54_InitialCondition;
29747 L4_MABX_DW.Unit_Delay_55_DSTATE = L4_MABX_P.Unit_Delay_55_InitialCondition;
29748 L4_MABX_DW.Unit_Delay_56_DSTATE = L4_MABX_P.Unit_Delay_56_InitialCondition;
29749 L4_MABX_DW.Unit_Delay_57_DSTATE = L4_MABX_P.Unit_Delay_57_InitialCondition;
29750 L4_MABX_DW.Unit_Delay_58_DSTATE = L4_MABX_P.Unit_Delay_58_InitialCondition;
29751 L4_MABX_DW.Unit_Delay_59_DSTATE = L4_MABX_P.Unit_Delay_59_InitialCondition;
29752 L4_MABX_DW.Unit_Delay_6_DSTATE = L4_MABX_P.Unit_Delay_6_InitialCondition;
29753 L4_MABX_DW.Unit_Delay_60_DSTATE = L4_MABX_P.Unit_Delay_60_InitialCondition;
29754 L4_MABX_DW.Unit_Delay_61_DSTATE = L4_MABX_P.Unit_Delay_61_InitialCondition;
29755 L4_MABX_DW.Unit_Delay_62_DSTATE = L4_MABX_P.Unit_Delay_62_InitialCondition;
29756 L4_MABX_DW.Unit_Delay_63_DSTATE = L4_MABX_P.Unit_Delay_63_InitialCondition;
29757 L4_MABX_DW.Unit_Delay_64_DSTATE = L4_MABX_P.Unit_Delay_64_InitialCondition;
29758 L4_MABX_DW.Unit_Delay_65_DSTATE = L4_MABX_P.Unit_Delay_65_InitialCondition;
29759 L4_MABX_DW.Unit_Delay_66_DSTATE = L4_MABX_P.Unit_Delay_66_InitialCondition;
29760 L4_MABX_DW.Unit_Delay_67_DSTATE = L4_MABX_P.Unit_Delay_67_InitialCondition;
29761 L4_MABX_DW.Unit_Delay_68_DSTATE = L4_MABX_P.Unit_Delay_68_InitialCondition;
29762 L4_MABX_DW.Unit_Delay_69_DSTATE = L4_MABX_P.Unit_Delay_69_InitialCondition;
29763 L4_MABX_DW.Unit_Delay_7_DSTATE = L4_MABX_P.Unit_Delay_7_InitialCondition;
29764 L4_MABX_DW.Unit_Delay_70_DSTATE = L4_MABX_P.Unit_Delay_70_InitialCondition;
29765 L4_MABX_DW.Unit_Delay_71_DSTATE = L4_MABX_P.Unit_Delay_71_InitialCondition;
29766 L4_MABX_DW.Unit_Delay_72_DSTATE = L4_MABX_P.Unit_Delay_72_InitialCondition;
29767 L4_MABX_DW.Unit_Delay_73_DSTATE = L4_MABX_P.Unit_Delay_73_InitialCondition;
29768 L4_MABX_DW.Unit_Delay_74_DSTATE = L4_MABX_P.Unit_Delay_74_InitialCondition;
29769 L4_MABX_DW.Unit_Delay_75_DSTATE = L4_MABX_P.Unit_Delay_75_InitialCondition;
29770 L4_MABX_DW.Unit_Delay_76_DSTATE = L4_MABX_P.Unit_Delay_76_InitialCondition;
29771 L4_MABX_DW.Unit_Delay_77_DSTATE = L4_MABX_P.Unit_Delay_77_InitialCondition;
29772 L4_MABX_DW.Unit_Delay_78_DSTATE = L4_MABX_P.Unit_Delay_78_InitialCondition;
29773 L4_MABX_DW.Unit_Delay_8_DSTATE = L4_MABX_P.Unit_Delay_8_InitialCondition;
29774 L4_MABX_DW.Unit_Delay_83_DSTATE = L4_MABX_P.Unit_Delay_83_InitialCondition;
29775 L4_MABX_DW.Unit_Delay_84_DSTATE = L4_MABX_P.Unit_Delay_84_InitialCondition;
29776 L4_MABX_DW.Unit_Delay_85_DSTATE = L4_MABX_P.Unit_Delay_85_InitialCondition;
29777 L4_MABX_DW.Unit_Delay_86_DSTATE = L4_MABX_P.Unit_Delay_86_InitialCondition;
29778 L4_MABX_DW.Unit_Delay_87_DSTATE = L4_MABX_P.Unit_Delay_87_InitialCondition;
29779 L4_MABX_DW.Unit_Delay_88_DSTATE = L4_MABX_P.Unit_Delay_88_InitialCondition;
29780 L4_MABX_DW.Unit_Delay_89_DSTATE = L4_MABX_P.Unit_Delay_89_InitialCondition;
29781 L4_MABX_DW.Unit_Delay_9_DSTATE = L4_MABX_P.Unit_Delay_9_InitialCondition;
29782 L4_MABX_DW.Unit_Delay_90_DSTATE = L4_MABX_P.Unit_Delay_90_InitialCondition;
29783 L4_MABX_DW.Unit_Delay_91_DSTATE = L4_MABX_P.Unit_Delay_91_InitialCondition;
29784 L4_MABX_DW.Unit_Delay_92_DSTATE = L4_MABX_P.Unit_Delay_92_InitialCondition;
29785 L4_MABX_DW.Unit_Delay_93_DSTATE = L4_MABX_P.Unit_Delay_93_InitialCondition;
29786 L4_MABX_DW.Unit_Delay_94_DSTATE = L4_MABX_P.Unit_Delay_94_InitialCondition;
29787 L4_MABX_DW.Unit_Delay_95_DSTATE = L4_MABX_P.Unit_Delay_95_InitialCondition;
29788 L4_MABX_DW.Unit_Delay_96_DSTATE = L4_MABX_P.Unit_Delay_96_InitialCondition;
29789 L4_MABX_DW.Unit_Delay_97_DSTATE = L4_MABX_P.Unit_Delay_97_InitialCondition;
29790 L4_MABX_DW.Unit_Delay_98_DSTATE = L4_MABX_P.Unit_Delay_98_InitialCondition;
29791 L4_MABX_DW.Unit_Delay_99_DSTATE = L4_MABX_P.Unit_Delay_99_InitialCondition;
29792
29793 /* InitializeConditions for UnitDelay: '<S644>/Unit_Delay2' */
29794 L4_MABX_DW.Unit_Delay2_DSTATE_f = L4_MABX_P.Unit_Delay2_InitialCondition_p;
29795
29796 /* InitializeConditions for UnitDelay: '<S644>/Unit_Delay1' */
29797 L4_MABX_DW.Unit_Delay1_DSTATE_g = L4_MABX_P.Unit_Delay1_InitialCondition_d;
29798
29799 /* InitializeConditions for UnitDelay: '<S651>/Unit_Delay' */
29800 L4_MABX_DW.Unit_Delay_DSTATE_fu = L4_MABX_P.Unit_Delay_InitialCondition_leo;
29801
29802 /* InitializeConditions for UnitDelay: '<S740>/Delay Input1' */
29803 L4_MABX_DW.DelayInput1_DSTATE_k = L4_MABX_P.DetectRisePositive_vinit;
29804
29805 /* InitializeConditions for UnitDelay: '<S741>/Unit Delay1' */
29806 L4_MABX_DW.UnitDelay1_DSTATE = L4_MABX_P.UnitDelay1_InitialCondition_a;
29807
29808 /* InitializeConditions for UnitDelay: '<S736>/Unit Delay' */
29809 L4_MABX_DW.UnitDelay_DSTATE_jd = L4_MABX_P.UnitDelay_InitialCondition_b;
29810
29811 /* InitializeConditions for UnitDelay: '<S739>/Delay Input1' */
29812 L4_MABX_DW.DelayInput1_DSTATE_nn = L4_MABX_P.DetectFallNegative_vinit;
29813
29814 /* InitializeConditions for UnitDelay: '<S741>/Unit Delay' */
29815 L4_MABX_DW.UnitDelay_DSTATE_pw = L4_MABX_P.UnitDelay_InitialCondition_a4;
29816
29817 /* InitializeConditions for UnitDelay: '<S742>/Unit Delay1' */
29818 L4_MABX_DW.UnitDelay1_DSTATE_p = L4_MABX_P.UnitDelay1_InitialCondition_l;
29819
29820 /* InitializeConditions for UnitDelay: '<S742>/Unit Delay' */
29821 L4_MABX_DW.UnitDelay_DSTATE_i = L4_MABX_P.UnitDelay_InitialCondition_cu;
29822
29823 /* InitializeConditions for UnitDelay: '<S10>/Unit_Delay' */
29824 L4_MABX_DW.Unit_Delay_DSTATE_do = L4_MABX_P.Unit_Delay_InitialCondition_jp;
29825
29826 /* SystemInitialize for Enabled SubSystem: '<S492>/AIR1' */
29827 /* SystemInitialize for Outport: '<S493>/PneumaticSupplyPress' */
29828 L4_MABX_B.SFunction1_o1_lq = L4_MABX_P.PneumaticSupplyPress_Y0;
29829
29830 /* SystemInitialize for Outport: '<S493>/ParkingAnd_orTrailerAirPress' */
29831 L4_MABX_B.SFunction1_o2_jn = L4_MABX_P.ParkingAnd_orTrailerAirPress_Y0;
29832
29833 /* SystemInitialize for Outport: '<S493>/ServiceBrakeCircuit1AirPress' */
29834 L4_MABX_B.SFunction1_o3_bu = L4_MABX_P.ServiceBrakeCircuit1AirPress_Y0;
29835
29836 /* SystemInitialize for Outport: '<S493>/ServiceBrakeCircuit2AirPress' */
29837 L4_MABX_B.SFunction1_o4_kcx = L4_MABX_P.ServiceBrakeCircuit2AirPress_Y0;
29838
29839 /* SystemInitialize for Outport: '<S493>/AuxEquipmentSupplyPress' */
29840 L4_MABX_B.SFunction1_o5_os = L4_MABX_P.AuxEquipmentSupplyPress_Y0;
29841
29842 /* SystemInitialize for Outport: '<S493>/AirSuspensionSupplyPress' */
29843 L4_MABX_B.SFunction1_o6_je = L4_MABX_P.AirSuspensionSupplyPress_Y0;
29844
29845 /* SystemInitialize for Outport: '<S493>/AirCompressorStatus' */
29846 L4_MABX_B.SFunction1_o7_ie = L4_MABX_P.AirCompressorStatus_Y0;
29847
29848 /* SystemInitialize for Outport: '<S493>/PowertrainCircuitAirSupplyPress' */
29849 L4_MABX_B.SFunction1_o8_kv = L4_MABX_P.PowertrainCircuitAirSupplyPress;
29850
29851 /* SystemInitialize for Outport: '<S493>/RX status' */
29852 L4_MABX_B.SFunction1_o9_kp = L4_MABX_P.RXstatus_Y0_e;
29853
29854 /* SystemInitialize for Outport: '<S493>/RX time' */
29855 L4_MABX_B.SFunction1_o10_ju = L4_MABX_P.RXtime_Y0_i;
29856
29857 /* SystemInitialize for Outport: '<S493>/RX delta time' */
29858 L4_MABX_B.SFunction1_o11_j2 = L4_MABX_P.RXdeltatime_Y0_j;
29859
29860 /* End of SystemInitialize for SubSystem: '<S492>/AIR1' */
29861
29862 /* SystemInitialize for Enabled SubSystem: '<S494>/AMB' */
29863 /* SystemInitialize for Outport: '<S495>/BarometricPress' */
29864 L4_MABX_B.SFunction1_o1_lz = L4_MABX_P.BarometricPress_Y0;
29865
29866 /* SystemInitialize for Outport: '<S495>/CabInteriorTemp' */
29867 L4_MABX_B.SFunction1_o2_bz = L4_MABX_P.CabInteriorTemp_Y0;
29868
29869 /* SystemInitialize for Outport: '<S495>/AmbientAirTemp' */
29870 L4_MABX_B.SFunction1_o3_awg = L4_MABX_P.AmbientAirTemp_Y0;
29871
29872 /* SystemInitialize for Outport: '<S495>/EngAirIntakeTemp' */
29873 L4_MABX_B.SFunction1_o4_na = L4_MABX_P.EngAirIntakeTemp_Y0;
29874
29875 /* SystemInitialize for Outport: '<S495>/RoadSurfaceTemp' */
29876 L4_MABX_B.SFunction1_o5_dm = L4_MABX_P.RoadSurfaceTemp_Y0;
29877
29878 /* SystemInitialize for Outport: '<S495>/RX status' */
29879 L4_MABX_B.SFunction1_o6_c = L4_MABX_P.RXstatus_Y0_b;
29880
29881 /* SystemInitialize for Outport: '<S495>/RX time' */
29882 L4_MABX_B.SFunction1_o7_nvh = L4_MABX_P.RXtime_Y0_p;
29883
29884 /* SystemInitialize for Outport: '<S495>/RX delta time' */
29885 L4_MABX_B.SFunction1_o8_au = L4_MABX_P.RXdeltatime_Y0_m;
29886
29887 /* End of SystemInitialize for SubSystem: '<S494>/AMB' */
29888
29889 /* SystemInitialize for Atomic SubSystem: '<S834>/CAN_TX_1000ms' */
29890 /* SystemInitialize for Enabled SubSystem: '<S854>/AIR1' */
29891 /* SystemInitialize for Outport: '<S855>/TX status' */
29892 L4_MABX_B.SFunction1_o1_cut = L4_MABX_P.TXstatus_Y0;
29893
29894 /* SystemInitialize for Outport: '<S855>/TX time' */
29895 L4_MABX_B.SFunction1_o2_i = L4_MABX_P.TXtime_Y0;
29896
29897 /* SystemInitialize for Outport: '<S855>/TX delta time' */
29898 L4_MABX_B.SFunction1_o3_nj = L4_MABX_P.TXdeltatime_Y0;
29899
29900 /* SystemInitialize for Outport: '<S855>/TX delay time' */
29901 L4_MABX_B.SFunction1_o4_ed = L4_MABX_P.TXdelaytime_Y0;
29902
29903 /* End of SystemInitialize for SubSystem: '<S854>/AIR1' */
29904
29905 /* SystemInitialize for Enabled SubSystem: '<S862>/AMB' */
29906 /* SystemInitialize for Outport: '<S863>/TX status' */
29907 L4_MABX_B.SFunction1_o1_bv = L4_MABX_P.TXstatus_Y0_p;
29908
29909 /* SystemInitialize for Outport: '<S863>/TX time' */
29910 L4_MABX_B.SFunction1_o2_d = L4_MABX_P.TXtime_Y0_a;
29911
29912 /* SystemInitialize for Outport: '<S863>/TX delta time' */
29913 L4_MABX_B.SFunction1_o3_f = L4_MABX_P.TXdeltatime_Y0_l;
29914
29915 /* SystemInitialize for Outport: '<S863>/TX delay time' */
29916 L4_MABX_B.SFunction1_o4_o = L4_MABX_P.TXdelaytime_Y0_j;
29917
29918 /* End of SystemInitialize for SubSystem: '<S862>/AMB' */
29919 /* End of SystemInitialize for SubSystem: '<S834>/CAN_TX_1000ms' */
29920
29921 /* SystemInitialize for Chart: '<S830>/Chart' */
29922 L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW = 0U;
29923 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
29924
29925 /* SystemInitialize for Chart: '<S748>/Health State Machine PWM Sensor 1' */
29926 L4_MABX_DW.is_FAILURE_DETECTED_e = L4_MABX_IN_NO_ACTIVE_CHILD;
29927 L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW = 0U;
29928 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
29929
29930 /* SystemInitialize for Chart: '<S748>/Health State Machine PWM Sensor 2' */
29931 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_NO_ACTIVE_CHILD;
29932 L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H = 0U;
29933 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_ACTIVE_CHILD;
29934
29935 /* SystemInitialize for Enabled SubSystem: '<S737>/Slew_at_event' */
29936 /* InitializeConditions for UnitDelay: '<S823>/Unit_Delay' */
29937 L4_MABX_DW.Unit_Delay_DSTATE_po = L4_MABX_P.Unit_Delay_InitialCondition_ix;
29938
29939 /* InitializeConditions for UnitDelay: '<S824>/Unit_Delay' */
29940 L4_MABX_DW.Unit_Delay_DSTATE_bq = L4_MABX_P.Unit_Delay_InitialCondition_gf;
29941
29942 /* InitializeConditions for UnitDelay: '<S827>/FixPt Unit Delay2' */
29943 L4_MABX_DW.FixPtUnitDelay2_DSTATE_d =
29944 L4_MABX_P.FixPtUnitDelay2_InitialCondi_ew;
29945
29946 /* InitializeConditions for UnitDelay: '<S827>/FixPt Unit Delay1' */
29947 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g =
29948 L4_MABX_P.FixPtUnitDelay1_InitialCondi_oc;
29949
29950 /* InitializeConditions for UnitDelay: '<S822>/Unit_Delay' */
29951 L4_MABX_DW.Unit_Delay_DSTATE_c1 = L4_MABX_P.Unit_Delay_InitialCondition_kc;
29952
29953 /* SystemInitialize for Outport: '<S752>/F_Out_slewing' */
29954 L4_MABX_B.LogicalOperator_g = L4_MABX_P.F_Out_slewing_Y0_f;
29955
29956 /* SystemInitialize for Outport: '<S752>/Out' */
29957 L4_MABX_B.If_Then_Else_m3.Switch = L4_MABX_P.Out_Y0_p;
29958
29959 /* End of SystemInitialize for SubSystem: '<S737>/Slew_at_event' */
29960
29961 /* SystemInitialize for Enabled SubSystem: '<S502>/CCVS1_31' */
29962 /* SystemInitialize for Outport: '<S503>/TwoSpeedAxleSwitch' */
29963 L4_MABX_B.SFunction1_o1_hh = L4_MABX_P.TwoSpeedAxleSwitch_Y0_c;
29964
29965 /* SystemInitialize for Outport: '<S503>/ParkingBrakeSwitch' */
29966 L4_MABX_B.SFunction1_o2_mkm = L4_MABX_P.ParkingBrakeSwitch_Y0_a;
29967
29968 /* SystemInitialize for Outport: '<S503>/CruiseCtrlPauseSwitch' */
29969 L4_MABX_B.SFunction1_o3_o5 = L4_MABX_P.CruiseCtrlPauseSwitch_Y0_p;
29970
29971 /* SystemInitialize for Outport: '<S503>/ParkBrakeReleaseInhibitRq' */
29972 L4_MABX_B.SFunction1_o4_k0 = L4_MABX_P.ParkBrakeReleaseInhibitRq_Y0_m;
29973
29974 /* SystemInitialize for Outport: '<S503>/WheelBasedVehicleSpeed' */
29975 L4_MABX_B.SFunction1_o5_hg = L4_MABX_P.WheelBasedVehicleSpeed_Y0_l;
29976
29977 /* SystemInitialize for Outport: '<S503>/CruiseCtrlActive' */
29978 L4_MABX_B.SFunction1_o6_hl = L4_MABX_P.CruiseCtrlActive_Y0_j;
29979
29980 /* SystemInitialize for Outport: '<S503>/CruiseCtrlEnableSwitch' */
29981 L4_MABX_B.SFunction1_o7_l0 = L4_MABX_P.CruiseCtrlEnableSwitch_Y0_f;
29982
29983 /* SystemInitialize for Outport: '<S503>/BrakeSwitch' */
29984 L4_MABX_B.SFunction1_o8_o = L4_MABX_P.BrakeSwitch_Y0_o;
29985
29986 /* SystemInitialize for Outport: '<S503>/ClutchSwitch' */
29987 L4_MABX_B.SFunction1_o9_f0 = L4_MABX_P.ClutchSwitch_Y0_d;
29988
29989 /* SystemInitialize for Outport: '<S503>/CruiseCtrlSetSwitch' */
29990 L4_MABX_B.SFunction1_o10_f = L4_MABX_P.CruiseCtrlSetSwitch_Y0_c;
29991
29992 /* SystemInitialize for Outport: '<S503>/CruiseCtrlCoastSwitch' */
29993 L4_MABX_B.SFunction1_o11_j = L4_MABX_P.CruiseCtrlCoastSwitch_Y0_p;
29994
29995 /* SystemInitialize for Outport: '<S503>/CruiseCtrlResumeSwitch' */
29996 L4_MABX_B.SFunction1_o12_of = L4_MABX_P.CruiseCtrlResumeSwitch_Y0_e;
29997
29998 /* SystemInitialize for Outport: '<S503>/CruiseCtrlAccelerateSwitch' */
29999 L4_MABX_B.SFunction1_o13_i = L4_MABX_P.CruiseCtrlAccelerateSwitch_Y0_n;
30000
30001 /* SystemInitialize for Outport: '<S503>/CruiseCtrlSetSpeed' */
30002 L4_MABX_B.SFunction1_o14_b = L4_MABX_P.CruiseCtrlSetSpeed_Y0_j;
30003
30004 /* SystemInitialize for Outport: '<S503>/PTOGovernorState' */
30005 L4_MABX_B.SFunction1_o15_c = L4_MABX_P.PTOGovernorState_Y0_h;
30006
30007 /* SystemInitialize for Outport: '<S503>/CruiseCtrlStates' */
30008 L4_MABX_B.SFunction1_o16_a = L4_MABX_P.CruiseCtrlStates_Y0_f;
30009
30010 /* SystemInitialize for Outport: '<S503>/EngIdleIncrementSwitch' */
30011 L4_MABX_B.SFunction1_o17_hh = L4_MABX_P.EngIdleIncrementSwitch_Y0_c;
30012
30013 /* SystemInitialize for Outport: '<S503>/EngIdleDecrementSwitch' */
30014 L4_MABX_B.SFunction1_o18_b = L4_MABX_P.EngIdleDecrementSwitch_Y0_e;
30015
30016 /* SystemInitialize for Outport: '<S503>/EngTestModeSwitch' */
30017 L4_MABX_B.SFunction1_o19_m = L4_MABX_P.EngTestModeSwitch_Y0_i;
30018
30019 /* SystemInitialize for Outport: '<S503>/EngShutdownOverrideSwitch' */
30020 L4_MABX_B.SFunction1_o20_c = L4_MABX_P.EngShutdownOverrideSwitch_Y0_m;
30021
30022 /* SystemInitialize for Outport: '<S503>/RX status' */
30023 L4_MABX_B.SFunction1_o21_m = L4_MABX_P.RXstatus_Y0_gx;
30024
30025 /* SystemInitialize for Outport: '<S503>/RX time' */
30026 L4_MABX_B.SFunction1_o22_lf = L4_MABX_P.RXtime_Y0_j;
30027
30028 /* SystemInitialize for Outport: '<S503>/RX delta time' */
30029 L4_MABX_B.SFunction1_o23_o = L4_MABX_P.RXdeltatime_Y0_e;
30030
30031 /* End of SystemInitialize for SubSystem: '<S502>/CCVS1_31' */
30032
30033 /* SystemInitialize for Enabled SubSystem: '<S513>/EBC2_0B1' */
30034 /* SystemInitialize for Outport: '<S514>/FrontAxleSpeed' */
30035 L4_MABX_B.SFunction1_o1_m1 = L4_MABX_P.FrontAxleSpeed_Y0;
30036
30037 /* SystemInitialize for Outport: '<S514>/RelativeSpeedFrontAxleLeftWheel' */
30038 L4_MABX_B.SFunction1_o2_fi = L4_MABX_P.RelativeSpeedFrontAxleLeftWheel;
30039
30040 /* SystemInitialize for Outport: '<S514>/RlativeSpeedFrontAxleRightWheel' */
30041 L4_MABX_B.SFunction1_o3_ja = L4_MABX_P.RlativeSpeedFrontAxleRightWheel;
30042
30043 /* SystemInitialize for Outport: '<S514>/RelativeSpeedRearAxle1LeftWheel' */
30044 L4_MABX_B.SFunction1_o4_mc = L4_MABX_P.RelativeSpeedRearAxle1LeftWheel;
30045
30046 /* SystemInitialize for Outport: '<S514>/RlativeSpeedRearAxle1RightWheel' */
30047 L4_MABX_B.SFunction1_o5_i5 = L4_MABX_P.RlativeSpeedRearAxle1RightWheel;
30048
30049 /* SystemInitialize for Outport: '<S514>/RelativeSpeedRearAxle2LeftWheel' */
30050 L4_MABX_B.SFunction1_o6_b5 = L4_MABX_P.RelativeSpeedRearAxle2LeftWheel;
30051
30052 /* SystemInitialize for Outport: '<S514>/RlativeSpeedRearAxle2RightWheel' */
30053 L4_MABX_B.SFunction1_o7_e = L4_MABX_P.RlativeSpeedRearAxle2RightWheel;
30054
30055 /* SystemInitialize for Outport: '<S514>/RX status' */
30056 L4_MABX_B.SFunction1_o8_nv = L4_MABX_P.RXstatus_Y0_m;
30057
30058 /* SystemInitialize for Outport: '<S514>/RX time' */
30059 L4_MABX_B.SFunction1_o9_a2 = L4_MABX_P.RXtime_Y0_b;
30060
30061 /* SystemInitialize for Outport: '<S514>/RX delta time' */
30062 L4_MABX_B.SFunction1_o10_a = L4_MABX_P.RXdeltatime_Y0_k;
30063
30064 /* End of SystemInitialize for SubSystem: '<S513>/EBC2_0B1' */
30065
30066 /* SystemInitialize for Enabled SubSystem: '<S571>/HRW_0B' */
30067 /* SystemInitialize for Outport: '<S572>/FrontAxleLeftWheelSpeed' */
30068 L4_MABX_B.SFunction1_o1_fb = L4_MABX_P.FrontAxleLeftWheelSpeed_Y0;
30069
30070 /* SystemInitialize for Outport: '<S572>/FrontAxleRightWheelSpeed' */
30071 L4_MABX_B.SFunction1_o2_fs = L4_MABX_P.FrontAxleRightWheelSpeed_Y0;
30072
30073 /* SystemInitialize for Outport: '<S572>/RearAxleLeftWheelSpeed' */
30074 L4_MABX_B.SFunction1_o3_pm = L4_MABX_P.RearAxleLeftWheelSpeed_Y0;
30075
30076 /* SystemInitialize for Outport: '<S572>/RearAxleRightWheelSpeed' */
30077 L4_MABX_B.SFunction1_o4_od = L4_MABX_P.RearAxleRightWheelSpeed_Y0;
30078
30079 /* SystemInitialize for Outport: '<S572>/RX status' */
30080 L4_MABX_B.SFunction1_o5_lx = L4_MABX_P.RXstatus_Y0_oa;
30081
30082 /* SystemInitialize for Outport: '<S572>/RX time' */
30083 L4_MABX_B.SFunction1_o6_om3 = L4_MABX_P.RXtime_Y0_h;
30084
30085 /* SystemInitialize for Outport: '<S572>/RX delta time' */
30086 L4_MABX_B.SFunction1_o7_k = L4_MABX_P.RXdeltatime_Y0_b;
30087
30088 /* End of SystemInitialize for SubSystem: '<S571>/HRW_0B' */
30089
30090 /* SystemInitialize for Enabled SubSystem: '<S511>/EBC1_0B' */
30091 /* SystemInitialize for Outport: '<S512>/ASREngCtrlActive' */
30092 L4_MABX_B.SFunction1_o1_no = L4_MABX_P.ASREngCtrlActive_Y0_c;
30093
30094 /* SystemInitialize for Outport: '<S512>/ASRBrakeCtrlActive' */
30095 L4_MABX_B.SFunction1_o2_gg = L4_MABX_P.ASRBrakeCtrlActive_Y0_i;
30096
30097 /* SystemInitialize for Outport: '<S512>/AntiLockBrakingActive' */
30098 L4_MABX_B.SFunction1_o3_pd = L4_MABX_P.AntiLockBrakingActive_Y0_l;
30099
30100 /* SystemInitialize for Outport: '<S512>/EBSBrakeSwitch' */
30101 L4_MABX_B.SFunction1_o4_edl = L4_MABX_P.EBSBrakeSwitch_Y0_h;
30102
30103 /* SystemInitialize for Outport: '<S512>/BrakePedalPos' */
30104 L4_MABX_B.SFunction1_o5_ma = L4_MABX_P.BrakePedalPos_Y0_f;
30105
30106 /* SystemInitialize for Outport: '<S512>/ABSOffroadSwitch' */
30107 L4_MABX_B.SFunction1_o6_n = L4_MABX_P.ABSOffroadSwitch_Y0_k;
30108
30109 /* SystemInitialize for Outport: '<S512>/ASROffroadSwitch' */
30110 L4_MABX_B.SFunction1_o7_e3 = L4_MABX_P.ASROffroadSwitch_Y0_k;
30111
30112 /* SystemInitialize for Outport: '<S512>/ASRHillHolderSwitch' */
30113 L4_MABX_B.SFunction1_o8_ff = L4_MABX_P.ASRHillHolderSwitch_Y0_c;
30114
30115 /* SystemInitialize for Outport: '<S512>/TractionCtrlOverrideSwitch' */
30116 L4_MABX_B.SFunction1_o9_cr = L4_MABX_P.TractionCtrlOverrideSwitch_Y0_k;
30117
30118 /* SystemInitialize for Outport: '<S512>/AccelInterlockSwitch' */
30119 L4_MABX_B.SFunction1_o10_pe = L4_MABX_P.AccelInterlockSwitch_Y0_a;
30120
30121 /* SystemInitialize for Outport: '<S512>/EngDerateSwitch' */
30122 L4_MABX_B.SFunction1_o11_p = L4_MABX_P.EngDerateSwitch_Y0_d;
30123
30124 /* SystemInitialize for Outport: '<S512>/EngAuxShutdownSwitch' */
30125 L4_MABX_B.SFunction1_o12_k = L4_MABX_P.EngAuxShutdownSwitch_Y0_o;
30126
30127 /* SystemInitialize for Outport: '<S512>/RemoteAccelEnableSwitch' */
30128 L4_MABX_B.SFunction1_o13_cs = L4_MABX_P.RemoteAccelEnableSwitch_Y0_n;
30129
30130 /* SystemInitialize for Outport: '<S512>/EngRetarderSelection' */
30131 L4_MABX_B.SFunction1_o14_e = L4_MABX_P.EngRetarderSelection_Y0_h;
30132
30133 /* SystemInitialize for Outport: '<S512>/ABSFullyOperational' */
30134 L4_MABX_B.SFunction1_o15_o = L4_MABX_P.ABSFullyOperational_Y0_k;
30135
30136 /* SystemInitialize for Outport: '<S512>/EBSRedWarningSignal' */
30137 L4_MABX_B.SFunction1_o16_g = L4_MABX_P.EBSRedWarningSignal_Y0_h;
30138
30139 /* SystemInitialize for Outport: '<S512>/ABS_EBSAmberWarningSignal' */
30140 L4_MABX_B.SFunction1_o17_m = L4_MABX_P.ABS_EBSAmberWarningSignal_Y0_i;
30141
30142 /* SystemInitialize for Outport: '<S512>/ATC_ASRInformationSignal' */
30143 L4_MABX_B.SFunction1_o18_f = L4_MABX_P.ATC_ASRInformationSignal_Y0_h;
30144
30145 /* SystemInitialize for Outport: '<S512>/SrcAddrssOfCtrllngDvcFrBrkCntrl' */
30146 L4_MABX_B.SFunction1_o19_i = L4_MABX_P.SrcAddrssOfCtrllngDvcFrBrkCnt_j;
30147
30148 /* SystemInitialize for Outport: '<S512>/HaltBrakeSwitch' */
30149 L4_MABX_B.SFunction1_o20_d = L4_MABX_P.HaltBrakeSwitch_Y0_e;
30150
30151 /* SystemInitialize for Outport: '<S512>/TrailerABSStatus' */
30152 L4_MABX_B.SFunction1_o21_b = L4_MABX_P.TrailerABSStatus_Y0_f;
30153
30154 /* SystemInitialize for Outport: '<S512>/TrctrMntdTrilerABSWarningSignal' */
30155 L4_MABX_B.SFunction1_o22_l = L4_MABX_P.TrctrMntdTrilerABSWarningSign_l;
30156
30157 /* SystemInitialize for Outport: '<S512>/RX status' */
30158 L4_MABX_B.SFunction1_o23_n = L4_MABX_P.RXstatus_Y0_ob;
30159
30160 /* SystemInitialize for Outport: '<S512>/RX time' */
30161 L4_MABX_B.SFunction1_o24_p = L4_MABX_P.RXtime_Y0_d3;
30162
30163 /* SystemInitialize for Outport: '<S512>/RX delta time' */
30164 L4_MABX_B.SFunction1_o25_c = L4_MABX_P.RXdeltatime_Y0_jo;
30165
30166 /* End of SystemInitialize for SubSystem: '<S511>/EBC1_0B' */
30167
30168 /* SystemInitialize for Enabled SubSystem: '<S566>/ETC2_031' */
30169 /* SystemInitialize for Outport: '<S567>/SPN524_TransSelectedGear' */
30170 L4_MABX_B.SFunction1_o1_pz = L4_MABX_P.SPN524_TransSelectedGear_Y0;
30171
30172 /* SystemInitialize for Outport: '<S567>/SPN526_TransActualGearRatio' */
30173 L4_MABX_B.SFunction1_o2_or = L4_MABX_P.SPN526_TransActualGearRatio_Y0;
30174
30175 /* SystemInitialize for Outport: '<S567>/SPN523_TransCurrentGear' */
30176 L4_MABX_B.SFunction1_o3_e0 = L4_MABX_P.SPN523_TransCurrentGear_Y0;
30177
30178 /* SystemInitialize for Outport: '<S567>/RX status' */
30179 L4_MABX_B.SFunction1_o4_m2 = L4_MABX_P.RXstatus_Y0_d;
30180
30181 /* SystemInitialize for Outport: '<S567>/RX time' */
30182 L4_MABX_B.SFunction1_o5_ks = L4_MABX_P.RXtime_Y0_id;
30183
30184 /* SystemInitialize for Outport: '<S567>/RX delta time' */
30185 L4_MABX_B.SFunction1_o6_dg = L4_MABX_P.RXdeltatime_Y0_ks;
30186
30187 /* End of SystemInitialize for SubSystem: '<S566>/ETC2_031' */
30188
30189 /* SystemInitialize for Enabled SubSystem: '<S560>/EEC1_001' */
30190 /* SystemInitialize for Outport: '<S561>/EngTorqueMode' */
30191 L4_MABX_B.SFunction1_o1_k4 = L4_MABX_P.EngTorqueMode_Y0;
30192
30193 /* SystemInitialize for Outport: '<S561>/ActlEngPrcntTrqueHighResolution' */
30194 L4_MABX_B.SFunction1_o2_mk = L4_MABX_P.ActlEngPrcntTrqueHighResolution;
30195
30196 /* SystemInitialize for Outport: '<S561>/DriversDemandEngPercentTorque' */
30197 L4_MABX_B.SFunction1_o3_gns = L4_MABX_P.DriversDemandEngPercentTorque_Y;
30198
30199 /* SystemInitialize for Outport: '<S561>/ActualEngPercentTorque' */
30200 L4_MABX_B.SFunction1_o4_kr = L4_MABX_P.ActualEngPercentTorque_Y0;
30201
30202 /* SystemInitialize for Outport: '<S561>/EngSpeed' */
30203 L4_MABX_B.SFunction1_o5_j3 = L4_MABX_P.EngSpeed_Y0;
30204
30205 /* SystemInitialize for Outport: '<S561>/SrcAddrssOfCtrllngDvcFrEngCntrl' */
30206 L4_MABX_B.SFunction1_o6_gn = L4_MABX_P.SrcAddrssOfCtrllngDvcFrEngCntrl;
30207
30208 /* SystemInitialize for Outport: '<S561>/EngStarterMode' */
30209 L4_MABX_B.SFunction1_o7_cb = L4_MABX_P.EngStarterMode_Y0;
30210
30211 /* SystemInitialize for Outport: '<S561>/EngDemandPercentTorque' */
30212 L4_MABX_B.SFunction1_o8_a = L4_MABX_P.EngDemandPercentTorque_Y0;
30213
30214 /* SystemInitialize for Outport: '<S561>/RX status' */
30215 L4_MABX_B.SFunction1_o9_c = L4_MABX_P.RXstatus_Y0_h;
30216
30217 /* SystemInitialize for Outport: '<S561>/RX time' */
30218 L4_MABX_B.SFunction1_o10_e = L4_MABX_P.RXtime_Y0_aj;
30219
30220 /* SystemInitialize for Outport: '<S561>/RX delta time' */
30221 L4_MABX_B.SFunction1_o11_n1 = L4_MABX_P.RXdeltatime_Y0_dz;
30222
30223 /* End of SystemInitialize for SubSystem: '<S560>/EEC1_001' */
30224
30225 /* SystemInitialize for Enabled SubSystem: '<S564>/EEC3_001' */
30226 /* SystemInitialize for Outport: '<S565>/SPN514_NominalFrictionPercentTorque' */
30227 L4_MABX_B.SFunction1_o1_kg = L4_MABX_P.SPN514_NominalFrictionPercentTo;
30228
30229 /* SystemInitialize for Outport: '<S565>/SPN2978_EstEngParasiticLossesPercentTorque' */
30230 L4_MABX_B.SFunction1_o2_g2 = L4_MABX_P.SPN2978_EstEngParasiticLossesPe;
30231
30232 /* SystemInitialize for Outport: '<S565>/RX status' */
30233 L4_MABX_B.SFunction1_o3_ex = L4_MABX_P.RXstatus_Y0_mt;
30234
30235 /* SystemInitialize for Outport: '<S565>/RX time' */
30236 L4_MABX_B.SFunction1_o4_mu = L4_MABX_P.RXtime_Y0_lg;
30237
30238 /* SystemInitialize for Outport: '<S565>/RX delta time' */
30239 L4_MABX_B.SFunction1_o5_m = L4_MABX_P.RXdeltatime_Y0_h;
30240
30241 /* End of SystemInitialize for SubSystem: '<S564>/EEC3_001' */
30242
30243 /* SystemInitialize for Enabled SubSystem: '<S507>/CVW_0B1' */
30244 /* SystemInitialize for Outport: '<S508>/SPN1760_GrossCombinationVehicleWeight' */
30245 L4_MABX_B.SFunction1_o1_e = L4_MABX_P.SPN1760_GrossCombinationVehicle;
30246
30247 /* SystemInitialize for Outport: '<S508>/RX status' */
30248 L4_MABX_B.SFunction1_o2_hd = L4_MABX_P.RXstatus_Y0_c;
30249
30250 /* SystemInitialize for Outport: '<S508>/RX time' */
30251 L4_MABX_B.SFunction1_o3_ac = L4_MABX_P.RXtime_Y0_or;
30252
30253 /* SystemInitialize for Outport: '<S508>/RX delta time' */
30254 L4_MABX_B.SFunction1_o4_ev = L4_MABX_P.RXdeltatime_Y0_aw;
30255
30256 /* End of SystemInitialize for SubSystem: '<S507>/CVW_0B1' */
30257
30258 /* SystemInitialize for Enabled SubSystem: '<S488>/ACC1_2A_' */
30259 /* SystemInitialize for Outport: '<S489>/SpeedOfForwardVehicle' */
30260 L4_MABX_B.SFunction1_o1_lt = L4_MABX_P.SpeedOfForwardVehicle_Y0;
30261
30262 /* SystemInitialize for Outport: '<S489>/DistanceToForwardVehicle' */
30263 L4_MABX_B.SFunction1_o2_c2 = L4_MABX_P.DistanceToForwardVehicle_Y0;
30264
30265 /* SystemInitialize for Outport: '<S489>/AdaptiveCruiseCtrlSetSpeed' */
30266 L4_MABX_B.SFunction1_o3_nw = L4_MABX_P.AdaptiveCruiseCtrlSetSpeed_Y0;
30267
30268 /* SystemInitialize for Outport: '<S489>/AdaptiveCruiseCtrlMode' */
30269 L4_MABX_B.SFunction1_o4_moy = L4_MABX_P.AdaptiveCruiseCtrlMode_Y0;
30270
30271 /* SystemInitialize for Outport: '<S489>/AdptveCruiseCtrlSetDistanceMode' */
30272 L4_MABX_B.SFunction1_o5_es = L4_MABX_P.AdptveCruiseCtrlSetDistanceMode;
30273
30274 /* SystemInitialize for Outport: '<S489>/RoadCurvature' */
30275 L4_MABX_B.SFunction1_o6_i = L4_MABX_P.RoadCurvature_Y0;
30276
30277 /* SystemInitialize for Outport: '<S489>/ACCTargetDetected' */
30278 L4_MABX_B.SFunction1_o7_i1 = L4_MABX_P.ACCTargetDetected_Y0;
30279
30280 /* SystemInitialize for Outport: '<S489>/ACCSystemShutoffWarning' */
30281 L4_MABX_B.SFunction1_o8_bw = L4_MABX_P.ACCSystemShutoffWarning_Y0;
30282
30283 /* SystemInitialize for Outport: '<S489>/ACCDistanceAlertSignal' */
30284 L4_MABX_B.SFunction1_o9_d = L4_MABX_P.ACCDistanceAlertSignal_Y0;
30285
30286 /* SystemInitialize for Outport: '<S489>/ForwardCollisionWarning' */
30287 L4_MABX_B.SFunction1_o10_h3 = L4_MABX_P.ForwardCollisionWarning_Y0;
30288
30289 /* SystemInitialize for Outport: '<S489>/RX status' */
30290 L4_MABX_B.SFunction1_o11_fw = L4_MABX_P.RXstatus_Y0_g;
30291
30292 /* SystemInitialize for Outport: '<S489>/RX time' */
30293 L4_MABX_B.SFunction1_o12_m = L4_MABX_P.RXtime_Y0_l;
30294
30295 /* SystemInitialize for Outport: '<S489>/RX delta time' */
30296 L4_MABX_B.SFunction1_o13_cn = L4_MABX_P.RXdeltatime_Y0_ax;
30297
30298 /* End of SystemInitialize for SubSystem: '<S488>/ACC1_2A_' */
30299
30300 /* SystemInitialize for Enabled SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
30301 /* SystemInitialize for Outport: '<S472>/byte1' */
30302 L4_MABX_B.SFunction1_o1_h5 = L4_MABX_P.byte1_Y0;
30303
30304 /* SystemInitialize for Outport: '<S472>/byte2' */
30305 L4_MABX_B.SFunction1_o2_oo = L4_MABX_P.byte2_Y0;
30306
30307 /* SystemInitialize for Outport: '<S472>/byte3' */
30308 L4_MABX_B.SFunction1_o3_d0 = L4_MABX_P.byte3_Y0;
30309
30310 /* SystemInitialize for Outport: '<S472>/byte4' */
30311 L4_MABX_B.SFunction1_o4_h2 = L4_MABX_P.byte4_Y0;
30312
30313 /* SystemInitialize for Outport: '<S472>/byte5' */
30314 L4_MABX_B.SFunction1_o5_bn = L4_MABX_P.byte5_Y0;
30315
30316 /* SystemInitialize for Outport: '<S472>/byte6' */
30317 L4_MABX_B.SFunction1_o6_fvt = L4_MABX_P.byte6_Y0;
30318
30319 /* SystemInitialize for Outport: '<S472>/byte7' */
30320 L4_MABX_B.SFunction1_o7_nc = L4_MABX_P.byte7_Y0;
30321
30322 /* SystemInitialize for Outport: '<S472>/byte8' */
30323 L4_MABX_B.SFunction1_o8_fv = L4_MABX_P.byte8_Y0;
30324
30325 /* SystemInitialize for Outport: '<S472>/RX status' */
30326 L4_MABX_B.SFunction1_o9_bw = L4_MABX_P.RXstatus_Y0;
30327
30328 /* SystemInitialize for Outport: '<S472>/RX time' */
30329 L4_MABX_B.SFunction1_o10_p4 = L4_MABX_P.RXtime_Y0;
30330
30331 /* SystemInitialize for Outport: '<S472>/RX delta time' */
30332 L4_MABX_B.SFunction1_o11_do = L4_MABX_P.RXdeltatime_Y0;
30333
30334 /* End of SystemInitialize for SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
30335
30336 /* SystemInitialize for Enabled SubSystem: '<S464>/Decode_TPCM_BAM' */
30337 /* SystemInitialize for Outport: '<S682>/Out' */
30338 L4_MABX_B.SPN2556_ControlByte_k = (uint8_T)L4_MABX_P.Out_Y0_j;
30339 L4_MABX_B.DataType_hq = (uint16_T)L4_MABX_P.Out_Y0_j;
30340 L4_MABX_B.SPN2568_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_j;
30341 L4_MABX_B.DataType_f2 = (uint32_T)L4_MABX_P.Out_Y0_j;
30342
30343 /* End of SystemInitialize for SubSystem: '<S464>/Decode_TPCM_BAM' */
30344
30345 /* SystemInitialize for Enabled SubSystem: '<S479>/CAN_TYPE1_RX_M1_C1' */
30346 /* SystemInitialize for Outport: '<S481>/byte1' */
30347 L4_MABX_B.SFunction1_o1_pg = L4_MABX_P.byte1_Y0_b;
30348
30349 /* SystemInitialize for Outport: '<S481>/byte2' */
30350 L4_MABX_B.SFunction1_o2_i4 = L4_MABX_P.byte2_Y0_d;
30351
30352 /* SystemInitialize for Outport: '<S481>/byte3' */
30353 L4_MABX_B.SFunction1_o3_of = L4_MABX_P.byte3_Y0_l;
30354
30355 /* SystemInitialize for Outport: '<S481>/byte4' */
30356 L4_MABX_B.SFunction1_o4_oo = L4_MABX_P.byte4_Y0_p;
30357
30358 /* SystemInitialize for Outport: '<S481>/byte5' */
30359 L4_MABX_B.SFunction1_o5_h3 = L4_MABX_P.byte5_Y0_n;
30360
30361 /* SystemInitialize for Outport: '<S481>/byte6' */
30362 L4_MABX_B.SFunction1_o6_lf = L4_MABX_P.byte6_Y0_h;
30363
30364 /* SystemInitialize for Outport: '<S481>/byte7' */
30365 L4_MABX_B.SFunction1_o7_mf = L4_MABX_P.byte7_Y0_p;
30366
30367 /* SystemInitialize for Outport: '<S481>/byte8' */
30368 L4_MABX_B.SFunction1_o8_p = L4_MABX_P.byte8_Y0_j;
30369
30370 /* SystemInitialize for Outport: '<S481>/RX status' */
30371 L4_MABX_B.SFunction1_o9_o = L4_MABX_P.RXstatus_Y0_l;
30372
30373 /* SystemInitialize for Outport: '<S481>/RX time' */
30374 L4_MABX_B.SFunction1_o10_ji = L4_MABX_P.RXtime_Y0_f;
30375
30376 /* SystemInitialize for Outport: '<S481>/RX delta time' */
30377 L4_MABX_B.SFunction1_o11_jx = L4_MABX_P.RXdeltatime_Y0_a;
30378
30379 /* End of SystemInitialize for SubSystem: '<S479>/CAN_TYPE1_RX_M1_C1' */
30380
30381 /* SystemInitialize for S-Function (rti_commonblock): '<S833>/S-Function1' incorporates:
30382 * SubSystem: '<S412>/IncrementTimer'
30383 */
30384 L4_MABX_IncrementTimer_Init();
30385
30386 /* End of SystemInitialize for S-Function (rti_commonblock): '<S833>/S-Function1' */
30387
30388 /* SystemInitialize for Enabled SubSystem: '<S431>/CAN_RX_EC1_00' */
30389 /* SystemInitialize for Enabled SubSystem: '<S515>/Decode' */
30390 /* InitializeConditions for UnitDelay: '<S518>/Unit_Delay' */
30391 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_P.Unit_Delay_InitialCondition_c0;
30392 for (i = 0; i < 39; i++) {
30393 /* InitializeConditions for UnitDelay: '<S515>/Unit Delay' */
30394 L4_MABX_DW.UnitDelay_DSTATE_ek[i] =
30395 L4_MABX_P.UnitDelay_InitialCondition_gx[i];
30396
30397 /* SystemInitialize for Outport: '<S518>/RawData' */
30398 L4_MABX_B.Inport_p[i] = L4_MABX_P.RawData_Y0;
30399 }
30400
30401 /* SystemInitialize for Outport: '<S518>/RX_time' */
30402 L4_MABX_B.timeStamp_f = L4_MABX_P.RX_time_Y0;
30403
30404 /* SystemInitialize for Outport: '<S518>/RX_delta_time' */
30405 L4_MABX_B.Subtract_ls = L4_MABX_P.RX_delta_time_Y0;
30406
30407 /* End of SystemInitialize for SubSystem: '<S515>/Decode' */
30408
30409 /* SystemInitialize for Outport: '<S515>/RX_status' */
30410 L4_MABX_B.RX_status_el = L4_MABX_P.RX_status_Y0;
30411
30412 /* End of SystemInitialize for SubSystem: '<S431>/CAN_RX_EC1_00' */
30413
30414 /* SystemInitialize for Enabled SubSystem: '<S637>/VDC1_0B_' */
30415 /* SystemInitialize for Outport: '<S638>/VDCInformationSignal' */
30416 L4_MABX_B.SFunction1_o1_gt = L4_MABX_P.VDCInformationSignal_Y0;
30417
30418 /* SystemInitialize for Outport: '<S638>/VDCFullyOperational' */
30419 L4_MABX_B.SFunction1_o2_al = L4_MABX_P.VDCFullyOperational_Y0;
30420
30421 /* SystemInitialize for Outport: '<S638>/VDCBrakeLightRq' */
30422 L4_MABX_B.SFunction1_o3_ir = L4_MABX_P.VDCBrakeLightRq_Y0;
30423
30424 /* SystemInitialize for Outport: '<S638>/ROPEngCtrlActive' */
30425 L4_MABX_B.SFunction1_o4_lb = L4_MABX_P.ROPEngCtrlActive_Y0;
30426
30427 /* SystemInitialize for Outport: '<S638>/ROPBrakeCtrlActive' */
30428 L4_MABX_B.SFunction1_o5_i = L4_MABX_P.ROPBrakeCtrlActive_Y0;
30429
30430 /* SystemInitialize for Outport: '<S638>/YCEngCtrlActive' */
30431 L4_MABX_B.SFunction1_o6_f = L4_MABX_P.YCEngCtrlActive_Y0;
30432
30433 /* SystemInitialize for Outport: '<S638>/YCBrakeCtrlActive' */
30434 L4_MABX_B.SFunction1_o7_h = L4_MABX_P.YCBrakeCtrlActive_Y0;
30435
30436 /* SystemInitialize for Outport: '<S638>/RX status' */
30437 L4_MABX_B.SFunction1_o8_i = L4_MABX_P.RXstatus_Y0_f2;
30438
30439 /* SystemInitialize for Outport: '<S638>/RX time' */
30440 L4_MABX_B.SFunction1_o9_i = L4_MABX_P.RXtime_Y0_gj;
30441
30442 /* SystemInitialize for Outport: '<S638>/RX delta time' */
30443 L4_MABX_B.SFunction1_o10 = L4_MABX_P.RXdeltatime_Y0_cs;
30444
30445 /* End of SystemInitialize for SubSystem: '<S637>/VDC1_0B_' */
30446
30447 /* SystemInitialize for Enabled SubSystem: '<S639>/VDC2_0B1' */
30448 /* SystemInitialize for Outport: '<S640>/SteerWheelAngle' */
30449 SteerWheelAngle = L4_MABX_P.SteerWheelAngle_Y0;
30450
30451 /* SystemInitialize for Outport: '<S640>/SteerWheelTurnCounter' */
30452 L4_MABX_B.SFunction1_o2_m3 = L4_MABX_P.SteerWheelTurnCounter_Y0;
30453
30454 /* SystemInitialize for Outport: '<S640>/SteerWheelAngleSensorType' */
30455 L4_MABX_B.SFunction1_o3_f1 = L4_MABX_P.SteerWheelAngleSensorType_Y0;
30456
30457 /* SystemInitialize for Outport: '<S640>/YawRate' */
30458 YawRate = L4_MABX_P.YawRate_Y0;
30459
30460 /* SystemInitialize for Outport: '<S640>/LateralAcceleration' */
30461 L4_MABX_B.SFunction1_o5_g = L4_MABX_P.LateralAcceleration_Y0;
30462
30463 /* SystemInitialize for Outport: '<S640>/LongitudinalAcceleration' */
30464 SPN1810_LongitudinalAcceleration = L4_MABX_P.LongitudinalAcceleration_Y0;
30465
30466 /* SystemInitialize for Outport: '<S640>/RX status' */
30467 L4_MABX_B.SFunction1_o7_i = L4_MABX_P.RXstatus_Y0_nx;
30468
30469 /* SystemInitialize for Outport: '<S640>/RX time' */
30470 L4_MABX_B.SFunction1_o8_l = L4_MABX_P.RXtime_Y0_iw;
30471
30472 /* SystemInitialize for Outport: '<S640>/RX delta time' */
30473 L4_MABX_B.SFunction1_o9 = L4_MABX_P.RXdeltatime_Y0_pe;
30474
30475 /* End of SystemInitialize for SubSystem: '<S639>/VDC2_0B1' */
30476
30477 /* SystemInitialize for Enabled SubSystem: '<S454>/CAN_RX_VI_00' */
30478 /* SystemInitialize for Enabled SubSystem: '<S643>/Decode' */
30479 /* InitializeConditions for UnitDelay: '<S646>/Unit_Delay' */
30480 L4_MABX_DW.Unit_Delay_DSTATE_o = L4_MABX_P.Unit_Delay_InitialCondition_g;
30481 for (i = 0; i < 17; i++) {
30482 /* InitializeConditions for UnitDelay: '<S643>/Unit Delay' */
30483 L4_MABX_DW.UnitDelay_DSTATE_pd[i] =
30484 L4_MABX_P.UnitDelay_InitialCondition_me[i];
30485
30486 /* SystemInitialize for Outport: '<S646>/RawData' */
30487 L4_MABX_B.Inport[i] = L4_MABX_P.RawData_Y0_l;
30488 }
30489
30490 /* SystemInitialize for Outport: '<S646>/RX_time' */
30491 L4_MABX_B.timeStamp = L4_MABX_P.RX_time_Y0_i;
30492
30493 /* SystemInitialize for Outport: '<S646>/RX_delta_time' */
30494 L4_MABX_B.Subtract_p = L4_MABX_P.RX_delta_time_Y0_h;
30495
30496 /* End of SystemInitialize for SubSystem: '<S643>/Decode' */
30497
30498 /* SystemInitialize for Outport: '<S643>/RX_status' */
30499 L4_MABX_B.RX_status_a1 = L4_MABX_P.RX_status_Y0_n;
30500
30501 /* End of SystemInitialize for SubSystem: '<S454>/CAN_RX_VI_00' */
30502
30503 /* SystemInitialize for Enabled SubSystem: '<S625>/SSI2_031' */
30504 /* SystemInitialize for Outport: '<S626>/PitchAngleExRange' */
30505 L4_MABX_B.SFunction1_o1_g5 = L4_MABX_P.PitchAngleExRange_Y0;
30506
30507 /* SystemInitialize for Outport: '<S626>/RollAngleExRange' */
30508 L4_MABX_B.SFunction1_o2_im = L4_MABX_P.RollAngleExRange_Y0;
30509
30510 /* SystemInitialize for Outport: '<S626>/PitchAngleExRangeCompensation' */
30511 L4_MABX_B.SFunction1_o3_dn = L4_MABX_P.PitchAngleExRangeCompensation_Y;
30512
30513 /* SystemInitialize for Outport: '<S626>/PitchAngleExRangeFigureOfMerit' */
30514 L4_MABX_B.SFunction1_o4_nb = L4_MABX_P.PitchAngleExRangeFigureOfMerit_;
30515
30516 /* SystemInitialize for Outport: '<S626>/RollAngleExRangeCompensation' */
30517 L4_MABX_B.SFunction1_o5_j = L4_MABX_P.RollAngleExRangeCompensation_Y0;
30518
30519 /* SystemInitialize for Outport: '<S626>/RollAngleExRangeFigureOfMerit' */
30520 L4_MABX_B.SFunction1_o6_fb = L4_MABX_P.RollAngleExRangeFigureOfMerit_Y;
30521
30522 /* SystemInitialize for Outport: '<S626>/RllAndPtchExRngMsurementLatency' */
30523 L4_MABX_B.SFunction1_o7_nl = L4_MABX_P.RllAndPtchExRngMsurementLatency;
30524
30525 /* SystemInitialize for Outport: '<S626>/RX status' */
30526 L4_MABX_B.SFunction1_o8_nr = L4_MABX_P.RXstatus_Y0_ea;
30527
30528 /* SystemInitialize for Outport: '<S626>/RX time' */
30529 L4_MABX_B.SFunction1_o9_k = L4_MABX_P.RXtime_Y0_in;
30530
30531 /* SystemInitialize for Outport: '<S626>/RX delta time' */
30532 L4_MABX_B.SFunction1_o10_k = L4_MABX_P.RXdeltatime_Y0_ds;
30533
30534 /* End of SystemInitialize for SubSystem: '<S625>/SSI2_031' */
30535
30536 /* SystemInitialize for Enabled SubSystem: '<S616>/PX2_LanePosEst' */
30537 /* SystemInitialize for Outport: '<S619>/PX2_LanePosEstAngle' */
30538 L4_MABX_B.SFunction1_o1_cd = L4_MABX_P.PX2_LanePosEstAngle_Y0;
30539
30540 /* SystemInitialize for Outport: '<S619>/PX2_LanePosEstNumPoints' */
30541 L4_MABX_B.SFunction1_o2_fl = L4_MABX_P.PX2_LanePosEstNumPoints_Y0;
30542
30543 /* SystemInitialize for Outport: '<S619>/PX2_LanePosEstPosition' */
30544 L4_MABX_B.SFunction1_o3_hs = L4_MABX_P.PX2_LanePosEstPosition_Y0;
30545
30546 /* SystemInitialize for Outport: '<S619>/PX2_LanePosEstNumLanes' */
30547 L4_MABX_B.SFunction1_o4_cp = L4_MABX_P.PX2_LanePosEstNumLanes_Y0;
30548
30549 /* SystemInitialize for Outport: '<S619>/RX status' */
30550 L4_MABX_B.SFunction1_o5_k = L4_MABX_P.RXstatus_Y0_di;
30551
30552 /* SystemInitialize for Outport: '<S619>/RX time' */
30553 L4_MABX_B.SFunction1_o6_d = L4_MABX_P.RXtime_Y0_mh;
30554
30555 /* SystemInitialize for Outport: '<S619>/RX delta time' */
30556 L4_MABX_B.SFunction1_o7_j = L4_MABX_P.RXdeltatime_Y0_asz;
30557
30558 /* End of SystemInitialize for SubSystem: '<S616>/PX2_LanePosEst' */
30559
30560 /* SystemInitialize for Enabled SubSystem: '<S623>/Bendix_Prop2C2_Status_30' */
30561 /* SystemInitialize for Outport: '<S624>/PressureP4' */
30562 L4_MABX_B.SFunction1_o1_ja = L4_MABX_P.PressureP4_Y0;
30563
30564 /* SystemInitialize for Outport: '<S624>/PressureP1' */
30565 L4_MABX_B.SFunction1_o2_dq = L4_MABX_P.PressureP1_Y0;
30566
30567 /* SystemInitialize for Outport: '<S624>/PressureP21' */
30568 L4_MABX_B.SFunction1_o3_ha = L4_MABX_P.PressureP21_Y0;
30569
30570 /* SystemInitialize for Outport: '<S624>/PressureP22' */
30571 L4_MABX_B.SFunction1_o4_ond = L4_MABX_P.PressureP22_Y0;
30572
30573 /* SystemInitialize for Outport: '<S624>/PressureP42' */
30574 L4_MABX_B.SFunction1_o5_cy = L4_MABX_P.PressureP42_Y0;
30575
30576 /* SystemInitialize for Outport: '<S624>/XPR1ControlStatus' */
30577 L4_MABX_B.SFunction1_o6_k = L4_MABX_P.XPR1ControlStatus_Y0;
30578
30579 /* SystemInitialize for Outport: '<S624>/XPR2ControlStatus' */
30580 L4_MABX_B.SFunction1_o7_ds = L4_MABX_P.XPR2ControlStatus_Y0;
30581
30582 /* SystemInitialize for Outport: '<S624>/XPR3ControlStatus' */
30583 L4_MABX_B.SFunction1_o8_bh = L4_MABX_P.XPR3ControlStatus_Y0;
30584
30585 /* SystemInitialize for Outport: '<S624>/XPRErrorState' */
30586 L4_MABX_B.SFunction1_o9_h = L4_MABX_P.XPRErrorState_Y0;
30587
30588 /* SystemInitialize for Outport: '<S624>/XPRControlMode' */
30589 L4_MABX_B.SFunction1_o10_o = L4_MABX_P.XPRControlMode_Y0;
30590
30591 /* SystemInitialize for Outport: '<S624>/RX status' */
30592 L4_MABX_B.SFunction1_o11_g = L4_MABX_P.RXstatus_Y0_fb;
30593
30594 /* SystemInitialize for Outport: '<S624>/RX time' */
30595 L4_MABX_B.SFunction1_o12_o = L4_MABX_P.RXtime_Y0_a2;
30596
30597 /* SystemInitialize for Outport: '<S624>/RX delta time' */
30598 L4_MABX_B.SFunction1_o13_d = L4_MABX_P.RXdeltatime_Y0_bs;
30599
30600 /* End of SystemInitialize for SubSystem: '<S623>/Bendix_Prop2C2_Status_30' */
30601
30602 /* SystemInitialize for Enabled SubSystem: '<S573>/PropB_REAX_2_13' */
30603 /* SystemInitialize for Outport: '<S575>/PropB_REAX_2_ActualHandwheelPos' */
30604 L4_MABX_B.SFunction1_o1_ml = L4_MABX_P.PropB_REAX_2_ActualHandwheelPos;
30605
30606 /* SystemInitialize for Outport: '<S575>/PropB_REAX_2_EchoedStrWhlPos' */
30607 L4_MABX_B.SFunction1_o2_gpw = L4_MABX_P.PropB_REAX_2_EchoedStrWhlPos_Y0;
30608
30609 /* SystemInitialize for Outport: '<S575>/RX status' */
30610 L4_MABX_B.SFunction1_o3_ds = L4_MABX_P.RXstatus_Y0_k;
30611
30612 /* SystemInitialize for Outport: '<S575>/RX time' */
30613 L4_MABX_B.SFunction1_o4_cn = L4_MABX_P.RXtime_Y0_a0;
30614
30615 /* SystemInitialize for Outport: '<S575>/RX delta time' */
30616 L4_MABX_B.SFunction1_o5_ju = L4_MABX_P.RXdeltatime_Y0_g;
30617
30618 /* End of SystemInitialize for SubSystem: '<S573>/PropB_REAX_2_13' */
30619
30620 /* SystemInitialize for Enabled SubSystem: '<S574>/PropB_REAX_2_13' */
30621 /* SystemInitialize for Outport: '<S576>/PropB_REAX_2_ActualHandwheelPos' */
30622 L4_MABX_B.SFunction1_o1_dd = L4_MABX_P.PropB_REAX_2_ActualHandwheelP_i;
30623
30624 /* SystemInitialize for Outport: '<S576>/PropB_REAX_2_EchoedStrWhlPos' */
30625 L4_MABX_B.SFunction1_o2_nw = L4_MABX_P.PropB_REAX_2_EchoedStrWhlPos__g;
30626
30627 /* SystemInitialize for Outport: '<S576>/RX status' */
30628 L4_MABX_B.SFunction1_o3_cb = L4_MABX_P.RXstatus_Y0_hp;
30629
30630 /* SystemInitialize for Outport: '<S576>/RX time' */
30631 L4_MABX_B.SFunction1_o4_ei = L4_MABX_P.RXtime_Y0_c;
30632
30633 /* SystemInitialize for Outport: '<S576>/RX delta time' */
30634 L4_MABX_B.SFunction1_o5_dl = L4_MABX_P.RXdeltatime_Y0_ba;
30635
30636 /* End of SystemInitialize for SubSystem: '<S574>/PropB_REAX_2_13' */
30637
30638 /* SystemInitialize for Atomic SubSystem: '<S65>/Task_10ms' */
30639 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
30640 L4_MABX_DW.TmpRTBAtSignalConversion1Inport =
30641 L4_MABX_P.TmpRTBAtSignalConversion1Inport;
30642
30643 /* InitializeConditions for UnitDelay: '<S383>/Unit_Delay' */
30644 L4_MABX_DW.Unit_Delay_DSTATE_cx = L4_MABX_P.Unit_Delay_InitialCondition_b1;
30645
30646 /* InitializeConditions for UnitDelay: '<S384>/Unit_Delay' */
30647 L4_MABX_DW.Unit_Delay_DSTATE_d0 = L4_MABX_P.Unit_Delay_InitialCondition_gz;
30648
30649 /* InitializeConditions for UnitDelay: '<S341>/Unit_Delay' */
30650 L4_MABX_DW.Unit_Delay_DSTATE_e = L4_MABX_P.Unit_Delay_InitialCondition_i;
30651
30652 /* InitializeConditions for UnitDelay: '<S388>/FixPt Unit Delay2' */
30653 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aq =
30654 L4_MABX_P.FixPtUnitDelay2_InitialCondi_f5;
30655
30656 /* InitializeConditions for UnitDelay: '<S388>/FixPt Unit Delay1' */
30657 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hj =
30658 L4_MABX_P.FixPtUnitDelay1_InitialCondit_l;
30659
30660 /* InitializeConditions for UnitDelay: '<S385>/Unit_Delay' */
30661 L4_MABX_DW.Unit_Delay_DSTATE_m = L4_MABX_P.Unit_Delay_InitialCondition_hae;
30662
30663 /* InitializeConditions for UnitDelay: '<S372>/Unit_Delay' */
30664 L4_MABX_DW.Unit_Delay_DSTATE_iy = L4_MABX_P.Unit_Delay_InitialCondition_a;
30665
30666 /* InitializeConditions for UnitDelay: '<S373>/Unit_Delay' */
30667 L4_MABX_DW.Unit_Delay_DSTATE_mv = L4_MABX_P.Unit_Delay_InitialCondition_gt;
30668
30669 /* InitializeConditions for UnitDelay: '<S339>/Unit_Delay' */
30670 L4_MABX_DW.Unit_Delay_DSTATE_g = L4_MABX_P.Unit_Delay_InitialCondition_fb;
30671
30672 /* InitializeConditions for UnitDelay: '<S377>/FixPt Unit Delay2' */
30673 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip =
30674 L4_MABX_P.FixPtUnitDelay2_InitialCondi_po;
30675
30676 /* InitializeConditions for UnitDelay: '<S377>/FixPt Unit Delay1' */
30677 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq =
30678 L4_MABX_P.FixPtUnitDelay1_InitialCondit_d;
30679
30680 /* InitializeConditions for UnitDelay: '<S374>/Unit_Delay' */
30681 L4_MABX_DW.Unit_Delay_DSTATE_bw = L4_MABX_P.Unit_Delay_InitialCondition_c;
30682
30683 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
30684 L4_MABX_DW.TmpRTBAtSignalConversion3Inport =
30685 L4_MABX_P.TmpRTBAtSignalConversion3Inport;
30686
30687 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
30688 L4_MABX_DW.TmpRTBAtSignalConversion2Inport =
30689 L4_MABX_P.TmpRTBAtSignalConversion2Inport;
30690
30691 /* InitializeConditions for UnitDelay: '<S354>/Unit_Delay' */
30692 L4_MABX_DW.Unit_Delay_DSTATE_bwg = L4_MABX_P.Unit_Delay_InitialCondition_e;
30693
30694 /* InitializeConditions for UnitDelay: '<S356>/Unit_Delay' */
30695 L4_MABX_DW.Unit_Delay_DSTATE_ko = L4_MABX_P.Unit_Delay_InitialCondition_ml;
30696
30697 /* InitializeConditions for UnitDelay: '<S365>/FixPt Unit Delay2' */
30698 L4_MABX_DW.FixPtUnitDelay2_DSTATE_f =
30699 L4_MABX_P.FixPtUnitDelay2_InitialCondit_i;
30700
30701 /* InitializeConditions for UnitDelay: '<S365>/FixPt Unit Delay1' */
30702 L4_MABX_DW.FixPtUnitDelay1_DSTATE_li =
30703 L4_MABX_P.FixPtUnitDelay1_InitialCondit_h;
30704
30705 /* InitializeConditions for UnitDelay: '<S363>/Unit_Delay' */
30706 L4_MABX_DW.Unit_Delay_DSTATE_p = L4_MABX_P.Unit_Delay_InitialCondition_j;
30707
30708 /* InitializeConditions for UnitDelay: '<S336>/Delay Input1' */
30709 L4_MABX_DW.DelayInput1_DSTATE[0] = L4_MABX_P.DetectChange1_vinit;
30710
30711 /* InitializeConditions for UnitDelay: '<S343>/Delay Input1' */
30712 L4_MABX_DW.DelayInput1_DSTATE_f[0] = L4_MABX_P.DetectChange1_vinit_n;
30713
30714 /* InitializeConditions for UnitDelay: '<S336>/Delay Input1' */
30715 L4_MABX_DW.DelayInput1_DSTATE[1] = L4_MABX_P.DetectChange1_vinit;
30716
30717 /* InitializeConditions for UnitDelay: '<S343>/Delay Input1' */
30718 L4_MABX_DW.DelayInput1_DSTATE_f[1] = L4_MABX_P.DetectChange1_vinit_n;
30719
30720 /* InitializeConditions for UnitDelay: '<S345>/Unit_Delay' */
30721 L4_MABX_DW.Unit_Delay_DSTATE_la = L4_MABX_P.Unit_Delay_InitialCondition_ag;
30722
30723 /* InitializeConditions for UnitDelay: '<S349>/FixPt Unit Delay2' */
30724 L4_MABX_DW.FixPtUnitDelay2_DSTATE_cn =
30725 L4_MABX_P.FixPtUnitDelay2_InitialCondi_ck;
30726
30727 /* InitializeConditions for UnitDelay: '<S349>/FixPt Unit Delay1' */
30728 L4_MABX_DW.FixPtUnitDelay1_DSTATE_ej =
30729 L4_MABX_P.FixPtUnitDelay1_InitialCondit_m;
30730
30731 /* InitializeConditions for UnitDelay: '<S344>/Unit_Delay' */
30732 L4_MABX_DW.Unit_Delay_1_DSTATE_j = L4_MABX_P.Unit_Delay_1_InitialCondition;
30733 L4_MABX_DW.Unit_Delay_2_DSTATE_e = L4_MABX_P.Unit_Delay_2_InitialCondition;
30734 L4_MABX_DW.Unit_Delay_3_DSTATE_j = L4_MABX_P.Unit_Delay_3_InitialCondition;
30735
30736 /* InitializeConditions for UnitDelay: '<S342>/Unit_Delay' */
30737 L4_MABX_DW.Unit_Delay_DSTATE_f = L4_MABX_P.Unit_Delay_InitialCondition_e2;
30738
30739 /* InitializeConditions for UnitDelay: '<S101>/Unit_Delay' */
30740 L4_MABX_DW.Unit_Delay_DSTATE_eu4 = L4_MABX_P.Unit_Delay_InitialCondition_ip;
30741
30742 /* InitializeConditions for UnitDelay: '<S197>/Unit_Delay1' */
30743 L4_MABX_DW.Unit_Delay1_DSTATE_d = L4_MABX_P.Unit_Delay1_InitialCondition_f;
30744
30745 /* InitializeConditions for UnitDelay: '<S197>/Unit_Delay2' */
30746 L4_MABX_DW.Unit_Delay2_DSTATE_e = L4_MABX_P.Unit_Delay2_InitialCondition_a;
30747
30748 /* InitializeConditions for UnitDelay: '<S196>/UD' */
30749 L4_MABX_DW.UD_DSTATE = L4_MABX_P.DiscreteDerivative1_ICPrevScale;
30750
30751 /* InitializeConditions for UnitDelay: '<S321>/Unit_Delay1' */
30752 L4_MABX_DW.Unit_Delay1_DSTATE_db = L4_MABX_P.Unit_Delay1_InitialCondition_m;
30753
30754 /* InitializeConditions for UnitDelay: '<S321>/Unit_Delay2' */
30755 L4_MABX_DW.Unit_Delay2_DSTATE_dv = L4_MABX_P.Unit_Delay2_InitialCondition_g;
30756
30757 /* InitializeConditions for UnitDelay: '<S320>/Delay Input1' */
30758 L4_MABX_DW.DelayInput1_DSTATE_f0 = L4_MABX_P.DetectChange_vinit;
30759
30760 /* InitializeConditions for UnitDelay: '<S322>/Unit_Delay1' */
30761 L4_MABX_DW.Unit_Delay1_DSTATE_a = L4_MABX_P.Unit_Delay1_InitialCondition_ps;
30762
30763 /* InitializeConditions for UnitDelay: '<S322>/Unit_Delay2' */
30764 L4_MABX_DW.Unit_Delay2_DSTATE_i = L4_MABX_P.Unit_Delay2_InitialCondition_ji;
30765
30766 /* InitializeConditions for UnitDelay: '<S323>/Unit_Delay1' */
30767 L4_MABX_DW.Unit_Delay1_DSTATE_p = L4_MABX_P.Unit_Delay1_InitialCondition_j;
30768
30769 /* InitializeConditions for UnitDelay: '<S323>/Unit_Delay2' */
30770 L4_MABX_DW.Unit_Delay2_DSTATE_p = L4_MABX_P.Unit_Delay2_InitialCondition_ap;
30771
30772 /* InitializeConditions for UnitDelay: '<S279>/Unit Delay' */
30773 L4_MABX_DW.UnitDelay_DSTATE_d = L4_MABX_P.UnitDelay_InitialCondition_c;
30774
30775 /* InitializeConditions for UnitDelay: '<S289>/Unit Delay' */
30776 L4_MABX_DW.UnitDelay_DSTATE_m = L4_MABX_P.UnitDelay_InitialCondition;
30777
30778 /* InitializeConditions for UnitDelay: '<S290>/Unit Delay' */
30779 L4_MABX_DW.UnitDelay_DSTATE_m0 = L4_MABX_P.UnitDelay_InitialCondition_g;
30780
30781 /* InitializeConditions for UnitDelay: '<S290>/Unit Delay1' */
30782 L4_MABX_DW.UnitDelay1_DSTATE_k = L4_MABX_P.UnitDelay1_InitialCondition;
30783
30784 /* InitializeConditions for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
30785 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0 =
30786 L4_MABX_P.TmpRTBAtrad2deg1Inport1_Initial;
30787
30788 /* InitializeConditions for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
30789 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_ =
30790 L4_MABX_P.TmpRTBAtsignCurveOffsetInport1_;
30791
30792 /* InitializeConditions for UnitDelay: '<S284>/Unit Delay' */
30793 L4_MABX_DW.UnitDelay_DSTATE_m1 = L4_MABX_P.UnitDelay_InitialCondition_e;
30794
30795 /* InitializeConditions for RateTransition: '<S278>/TmpRTBAtAdd2Inport2' */
30796 L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0 =
30797 L4_MABX_P.TmpRTBAtAdd2Inport2_InitialCond;
30798
30799 /* InitializeConditions for UnitDelay: '<S302>/Delay Input2' */
30800 L4_MABX_DW.DelayInput2_DSTATE = L4_MABX_P.DelayInput2_InitialCondition;
30801
30802 /* InitializeConditions for DiscreteIntegrator: '<S301>/Integrator' */
30803 L4_MABX_DW.Integrator_DSTATE = L4_MABX_P.Integrator_IC;
30804 L4_MABX_DW.Integrator_PrevResetState = 2;
30805
30806 /* InitializeConditions for DiscreteIntegrator: '<S301>/Filter' */
30807 L4_MABX_DW.Filter_DSTATE = L4_MABX_P.Filter_IC;
30808 L4_MABX_DW.Filter_PrevResetState = 2;
30809
30810 /* InitializeConditions for UnitDelay: '<S305>/Delay Input' */
30811 L4_MABX_DW.DelayInput_DSTATE = L4_MABX_P.TransferFcnLeadorLag_ICPrevInpu;
30812
30813 /* InitializeConditions for UnitDelay: '<S305>/Delay Output' */
30814 L4_MABX_DW.DelayOutput_DSTATE = L4_MABX_P.TransferFcnLeadorLag_ICPrevOutp;
30815
30816 /* InitializeConditions for UnitDelay: '<S303>/Delay Input2' */
30817 L4_MABX_DW.DelayInput2_DSTATE_a = L4_MABX_P.DelayInput2_InitialCondition_m;
30818
30819 /* InitializeConditions for DiscreteIntegrator: '<S295>/Discrete-Time Integrator' */
30820 L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI = 1U;
30821 L4_MABX_DW.DiscreteTimeIntegrator_PrevRese = 2;
30822
30823 /* InitializeConditions for UnitDelay: '<S315>/Delay Input2' */
30824 L4_MABX_DW.DelayInput2_DSTATE_l = L4_MABX_P.DelayInput2_InitialCondition_g;
30825
30826 /* InitializeConditions for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
30827 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
30828 L4_MABX_P.DiscreteTimeIntegrator_IC;
30829 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 0;
30830
30831 /* InitializeConditions for RateLimiter: '<S304>/Limit Rate Limiter' */
30832 L4_MABX_DW.PrevY = L4_MABX_P.LimitRateLimiter_IC;
30833
30834 /* InitializeConditions for UnitDelay: '<S80>/Unit Delay' */
30835 L4_MABX_DW.UnitDelay_DSTATE_e = L4_MABX_P.UnitDelay_InitialCondition_g1;
30836
30837 /* InitializeConditions for UnitDelay: '<S367>/FixPt Unit Delay2' */
30838 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw =
30839 L4_MABX_P.FixPtUnitDelay2_InitialCondit_g;
30840
30841 /* InitializeConditions for UnitDelay: '<S367>/FixPt Unit Delay1' */
30842 L4_MABX_DW.FixPtUnitDelay1_DSTATE_p =
30843 L4_MABX_P.FixPtUnitDelay1_InitialCondi_dl;
30844
30845 /* InitializeConditions for UnitDelay: '<S368>/FixPt Unit Delay2' */
30846 L4_MABX_DW.FixPtUnitDelay2_DSTATE_g =
30847 L4_MABX_P.FixPtUnitDelay2_InitialCondi_pz;
30848
30849 /* InitializeConditions for UnitDelay: '<S368>/FixPt Unit Delay1' */
30850 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g0 =
30851 L4_MABX_P.FixPtUnitDelay1_InitialCondi_ol;
30852
30853 /* InitializeConditions for UnitDelay: '<S362>/Unit_Delay' */
30854 L4_MABX_DW.Unit_Delay_DSTATE_j = L4_MABX_P.Unit_Delay_InitialCondition_b;
30855
30856 /* SystemInitialize for Enabled SubSystem: '<S79>/Throttle_controller_gov' */
30857 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay1' */
30858 L4_MABX_DW.Unit_Delay1_DSTATE_p1 = L4_MABX_P.Unit_Delay1_InitialCondition_o;
30859
30860 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay' */
30861 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_P.Unit_Delay_InitialCondition_b2;
30862
30863 /* InitializeConditions for UnitDelay: '<S241>/Unit_Delay' */
30864 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Unit_Delay_InitialCondition_lj;
30865
30866 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay1' */
30867 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Unit_Delay1_InitialCondition_a;
30868
30869 /* InitializeConditions for UnitDelay: '<S262>/Unit_Delay' */
30870 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Unit_Delay_InitialCondition_bm;
30871
30872 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay2' */
30873 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq =
30874 L4_MABX_P.FixPtUnitDelay2_InitialCondit_a;
30875
30876 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay1' */
30877 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a =
30878 L4_MABX_P.FixPtUnitDelay1_InitialCondit_o;
30879
30880 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay2' */
30881 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_P.Unit_Delay2_InitialCondition_j;
30882
30883 /* InitializeConditions for UnitDelay: '<S216>/Unit_Delay' */
30884 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_P.Unit_Delay_InitialCondition_kg;
30885
30886 /* SystemInitialize for Enabled SubSystem: '<S238>/Calculate_D_term' */
30887 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term_h,
30888 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
30889
30890 /* End of SystemInitialize for SubSystem: '<S238>/Calculate_D_term' */
30891
30892 /* SystemInitialize for Enabled SubSystem: '<S238>/Calculate_I_term' */
30893 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term_n,
30894 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
30895
30896 /* End of SystemInitialize for SubSystem: '<S238>/Calculate_I_term' */
30897
30898 /* SystemInitialize for Outport: '<S206>/PID_output' */
30899 L4_MABX_B.If_Then_Else_pi.Switch = L4_MABX_P.PID_output_Y0_c;
30900
30901 /* SystemInitialize for Outport: '<S206>/PID_output_unlim' */
30902 L4_MABX_B.Add_ds = L4_MABX_P.PID_output_unlim_Y0;
30903
30904 /* SystemInitialize for Outport: '<S206>/PID_control_error' */
30905 L4_MABX_B.If_Then_Else_k2.Switch = L4_MABX_P.PID_control_error_Y0;
30906
30907 /* SystemInitialize for Outport: '<S206>/PID_p_term' */
30908 L4_MABX_B.Product_i = L4_MABX_P.PID_p_term_Y0;
30909
30910 /* SystemInitialize for Outport: '<S206>/PID_i_term' */
30911 L4_MABX_B.PID_i_term_c = L4_MABX_P.PID_i_term_Y0;
30912
30913 /* SystemInitialize for Outport: '<S206>/PID_d_term' */
30914 L4_MABX_B.PID_d_term_c = L4_MABX_P.PID_d_term_Y0;
30915
30916 /* SystemInitialize for Outport: '<S206>/PID_hold_i_term_f' */
30917 L4_MABX_B.PID_hold_i_term_f_b = L4_MABX_P.PID_hold_i_term_f_Y0;
30918
30919 /* End of SystemInitialize for SubSystem: '<S79>/Throttle_controller_gov' */
30920
30921 /* SystemInitialize for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
30922 /* InitializeConditions for UnitDelay: '<S178>/Unit_Delay' */
30923 L4_MABX_DW.Unit_Delay_DSTATE_ob = L4_MABX_P.Unit_Delay_InitialCondition_l;
30924
30925 /* InitializeConditions for UnitDelay: '<S188>/Unit_Delay' */
30926 L4_MABX_DW.Unit_Delay_DSTATE_ae = L4_MABX_P.Unit_Delay_InitialCondition_cl;
30927
30928 /* InitializeConditions for UnitDelay: '<S192>/FixPt Unit Delay2' */
30929 L4_MABX_DW.FixPtUnitDelay2_DSTATE_l =
30930 L4_MABX_P.FixPtUnitDelay2_InitialCondit_f;
30931
30932 /* InitializeConditions for UnitDelay: '<S192>/FixPt Unit Delay1' */
30933 L4_MABX_DW.FixPtUnitDelay1_DSTATE_d =
30934 L4_MABX_P.FixPtUnitDelay1_InitialCondit_j;
30935
30936 /* InitializeConditions for UnitDelay: '<S189>/Unit_Delay' */
30937 L4_MABX_DW.Unit_Delay_DSTATE_om = L4_MABX_P.Unit_Delay_InitialCondition_ha;
30938
30939 /* SystemInitialize for Outport: '<S178>/Shift_interlock_brake_press_target_kpa' */
30940 L4_MABX_B.If_Then_Else_il.Switch = L4_MABX_P.Shift_interlock_brake_press_tar;
30941
30942 /* SystemInitialize for Outport: '<S178>/F_Shift_interlock_conditions_met' */
30943 L4_MABX_B.F_Shift_interlock_conditions_me =
30944 L4_MABX_P.F_Shift_interlock_conditions_me;
30945
30946 /* End of SystemInitialize for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
30947
30948 /* SystemInitialize for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
30949 /* InitializeConditions for UnitDelay: '<S177>/Unit_Delay' */
30950 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_P.Unit_Delay_InitialCondition_d;
30951
30952 /* InitializeConditions for UnitDelay: '<S181>/Unit_Delay' */
30953 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Unit_Delay_InitialCondition_fy;
30954
30955 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay2' */
30956 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je =
30957 L4_MABX_P.FixPtUnitDelay2_InitialCondit_e;
30958
30959 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay1' */
30960 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b =
30961 L4_MABX_P.FixPtUnitDelay1_InitialCondit_p;
30962
30963 /* InitializeConditions for UnitDelay: '<S182>/Unit_Delay' */
30964 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_P.Unit_Delay_InitialCondition_k;
30965
30966 /* SystemInitialize for Outport: '<S177>/Brake_hold_brake_press_target_kpa' */
30967 L4_MABX_B.If_Then_Else_gj.Switch = L4_MABX_P.Brake_hold_brake_press_target_k;
30968
30969 /* SystemInitialize for Outport: '<S177>/F_Brake_hold_conditions_met' */
30970 L4_MABX_B.F_Brake_hold_conditions_met =
30971 L4_MABX_P.F_Brake_hold_conditions_met_Y0;
30972
30973 /* End of SystemInitialize for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
30974
30975 /* SystemInitialize for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
30976 /* InitializeConditions for UnitDelay: '<S105>/Unit_Delay' */
30977 L4_MABX_DW.Unit_Delay_DSTATE_dc = L4_MABX_P.Unit_Delay_InitialCondition;
30978
30979 /* InitializeConditions for UnitDelay: '<S109>/Unit_Delay' */
30980 L4_MABX_DW.Unit_Delay_DSTATE_omj = L4_MABX_P.Unit_Delay_InitialCondition_lt;
30981
30982 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay1' */
30983 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Unit_Delay1_InitialCondition;
30984
30985 /* InitializeConditions for UnitDelay: '<S130>/Unit_Delay' */
30986 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Unit_Delay_InitialCondition_og;
30987
30988 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay2' */
30989 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm =
30990 L4_MABX_P.FixPtUnitDelay2_InitialConditio;
30991
30992 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay1' */
30993 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 =
30994 L4_MABX_P.FixPtUnitDelay1_InitialConditio;
30995
30996 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay2' */
30997 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_P.Unit_Delay2_InitialCondition;
30998
30999 /* InitializeConditions for UnitDelay: '<S104>/Unit_Delay' */
31000 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_P.Unit_Delay_InitialCondition_p;
31001
31002 /* SystemInitialize for Enabled SubSystem: '<S106>/Calculate_D_term' */
31003 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term,
31004 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
31005
31006 /* End of SystemInitialize for SubSystem: '<S106>/Calculate_D_term' */
31007
31008 /* SystemInitialize for Enabled SubSystem: '<S106>/Calculate_I_term' */
31009 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term,
31010 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
31011
31012 /* End of SystemInitialize for SubSystem: '<S106>/Calculate_I_term' */
31013
31014 /* SystemInitialize for Outport: '<S96>/PID_output' */
31015 L4_MABX_B.If_Then_Else_nj.Switch = L4_MABX_P.PID_output_Y0;
31016
31017 /* End of SystemInitialize for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
31018
31019 /* SystemInitialize for Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
31020 L4_MABX_B.TimeVectorRaw[0] = 0.0;
31021 L4_MABX_B.TimeVectorRaw[1] = 0.001;
31022 L4_MABX_B.TimeVectorRaw[2] = 0.002;
31023 L4_MABX_B.TimeVectorRaw[3] = 0.003;
31024 L4_MABX_B.TimeVectorRaw[4] = 0.004;
31025 L4_MABX_B.TimeVectorRaw[5] = 0.005;
31026 L4_MABX_B.PositionVectorRaw[0] = 0.0;
31027 L4_MABX_B.PositionVectorRaw[1] = 0.001;
31028 L4_MABX_B.PositionVectorRaw[2] = 0.002;
31029 L4_MABX_B.PositionVectorRaw[3] = 0.003;
31030 L4_MABX_B.PositionVectorRaw[4] = 0.004;
31031 L4_MABX_B.PositionVectorRaw[5] = 0.005;
31032 for (i = 0; i < 6; i++) {
31033 L4_MABX_B.VelocityVectorRaw[i] = 0.0;
31034 L4_MABX_B.AccelerationVectorRaw[i] = 0.0;
31035 L4_MABX_B.JerkVectorRaw[i] = 0.0;
31036 }
31037
31038 /* End of SystemInitialize for Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
31039
31040 /* SystemInitialize for Chart: '<S338>/TwentyPointVectorCalculation' */
31041 L4_MABX_B.TimeVector[0] = 0.0;
31042 L4_MABX_B.TimeVector[1] = 0.001;
31043 L4_MABX_B.TimeVector[2] = 0.002;
31044 L4_MABX_B.TimeVector[3] = 0.003;
31045 L4_MABX_B.TimeVector[4] = 0.004;
31046 L4_MABX_B.TimeVector[5] = 0.005;
31047 L4_MABX_B.TimeVector[6] = 0.006;
31048 L4_MABX_B.TimeVector[7] = 0.007;
31049 L4_MABX_B.TimeVector[8] = 0.008;
31050 L4_MABX_B.TimeVector[9] = 0.0090000000000000011;
31051 L4_MABX_B.TimeVector[10] = 0.01;
31052 L4_MABX_B.TimeVector[11] = 0.011;
31053 L4_MABX_B.TimeVector[12] = 0.012;
31054 L4_MABX_B.TimeVector[13] = 0.013000000000000001;
31055 L4_MABX_B.TimeVector[14] = 0.014;
31056 L4_MABX_B.TimeVector[15] = 0.015;
31057 L4_MABX_B.TimeVector[16] = 0.016;
31058 L4_MABX_B.TimeVector[17] = 0.017;
31059 L4_MABX_B.TimeVector[18] = 0.018000000000000002;
31060 L4_MABX_B.TimeVector[19] = 0.019;
31061 L4_MABX_B.TimeVector[20] = 0.02;
31062 L4_MABX_B.TimeVector[21] = 0.021;
31063 L4_MABX_B.TimeVector[22] = 0.022;
31064 L4_MABX_B.TimeVector[23] = 0.023;
31065 L4_MABX_B.TimeVector[24] = 0.024;
31066 L4_MABX_B.TimeVector[25] = 0.025;
31067 L4_MABX_B.TimeVector[26] = 0.026000000000000002;
31068 L4_MABX_B.TimeVector[27] = 0.027;
31069 L4_MABX_B.TimeVector[28] = 0.028;
31070 L4_MABX_B.TimeVector[29] = 0.029;
31071 L4_MABX_B.TimeVector[30] = 0.03;
31072 L4_MABX_B.TimeVector[31] = 0.031;
31073 L4_MABX_B.TimeVector[32] = 0.032;
31074 L4_MABX_B.PositionVector[0] = 0.0;
31075 L4_MABX_B.PositionVector[1] = 0.001;
31076 L4_MABX_B.PositionVector[2] = 0.002;
31077 L4_MABX_B.PositionVector[3] = 0.003;
31078 L4_MABX_B.PositionVector[4] = 0.004;
31079 L4_MABX_B.PositionVector[5] = 0.005;
31080 L4_MABX_B.PositionVector[6] = 0.006;
31081 L4_MABX_B.PositionVector[7] = 0.007;
31082 L4_MABX_B.PositionVector[8] = 0.008;
31083 L4_MABX_B.PositionVector[9] = 0.0090000000000000011;
31084 L4_MABX_B.PositionVector[10] = 0.01;
31085 L4_MABX_B.PositionVector[11] = 0.011;
31086 L4_MABX_B.PositionVector[12] = 0.012;
31087 L4_MABX_B.PositionVector[13] = 0.013000000000000001;
31088 L4_MABX_B.PositionVector[14] = 0.014;
31089 L4_MABX_B.PositionVector[15] = 0.015;
31090 L4_MABX_B.PositionVector[16] = 0.016;
31091 L4_MABX_B.PositionVector[17] = 0.017;
31092 L4_MABX_B.PositionVector[18] = 0.018000000000000002;
31093 L4_MABX_B.PositionVector[19] = 0.019;
31094 L4_MABX_B.PositionVector[20] = 0.02;
31095 L4_MABX_B.PositionVector[21] = 0.021;
31096 L4_MABX_B.PositionVector[22] = 0.022;
31097 L4_MABX_B.PositionVector[23] = 0.023;
31098 L4_MABX_B.PositionVector[24] = 0.024;
31099 L4_MABX_B.PositionVector[25] = 0.025;
31100 L4_MABX_B.PositionVector[26] = 0.026000000000000002;
31101 L4_MABX_B.PositionVector[27] = 0.027;
31102 L4_MABX_B.PositionVector[28] = 0.028;
31103 L4_MABX_B.PositionVector[29] = 0.029;
31104 L4_MABX_B.PositionVector[30] = 0.03;
31105 L4_MABX_B.PositionVector[31] = 0.031;
31106 L4_MABX_B.PositionVector[32] = 0.032;
31107 memset(&L4_MABX_B.VelocityVector[0], 0, 33U * sizeof(real_T));
31108 memset(&L4_MABX_B.AccelerationVector[0], 0, 33U * sizeof(real_T));
31109 memset(&L4_MABX_B.JerkVector[0], 0, 33U * sizeof(real_T));
31110
31111 /* SystemInitialize for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
31112 /* InitializeConditions for UnitDelay: '<S140>/Unit_Delay' */
31113 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_P.Unit_Delay_InitialCondition_f;
31114
31115 /* InitializeConditions for UnitDelay: '<S147>/Unit_Delay' */
31116 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Unit_Delay_InitialCondition_jb;
31117
31118 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay1' */
31119 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Unit_Delay1_InitialCondition_p;
31120
31121 /* InitializeConditions for UnitDelay: '<S168>/Unit_Delay' */
31122 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Unit_Delay_InitialCondition_lq;
31123
31124 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay2' */
31125 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o =
31126 L4_MABX_P.FixPtUnitDelay2_InitialCondit_p;
31127
31128 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay1' */
31129 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 =
31130 L4_MABX_P.FixPtUnitDelay1_InitialCondit_b;
31131
31132 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay2' */
31133 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_P.Unit_Delay2_InitialCondition_b;
31134
31135 /* InitializeConditions for UnitDelay: '<S139>/Unit_Delay' */
31136 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_P.Unit_Delay_InitialCondition_h;
31137
31138 /* SystemInitialize for Enabled SubSystem: '<S144>/Calculate_D_term' */
31139 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term_p,
31140 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
31141
31142 /* End of SystemInitialize for SubSystem: '<S144>/Calculate_D_term' */
31143
31144 /* SystemInitialize for Enabled SubSystem: '<S144>/Calculate_I_term' */
31145 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term_e,
31146 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
31147
31148 /* End of SystemInitialize for SubSystem: '<S144>/Calculate_I_term' */
31149
31150 /* SystemInitialize for Outport: '<S97>/PID_output' */
31151 L4_MABX_B.If_Then_Else_fo.Switch = L4_MABX_P.PID_output_Y0_p;
31152
31153 /* End of SystemInitialize for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
31154
31155 /* SystemInitialize for Chart: '<S79>/Chart' */
31156 L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ = 0U;
31157 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_NO_ACTIVE_CHILD;
31158 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_NOT_AVAILABLE;
31159 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_NOT_AVAILABLE;
31160
31161 /* SystemInitialize for Enabled SubSystem: '<S79>/Engine_speed_target' */
31162 /* SystemInitialize for Outport: '<S204>/Out1' */
31163 L4_MABX_B.MinMax1_n = L4_MABX_P.Out1_Y0;
31164
31165 /* End of SystemInitialize for SubSystem: '<S79>/Engine_speed_target' */
31166
31167 /* SystemInitialize for Chart: '<S205>/Relay_control_state_machine' */
31168 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
31169 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
31170 L4_MABX_DW.temporalCounter_i1 = 0U;
31171 L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S = 0U;
31172 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_NO_ACTIVE_CHILD;
31173
31174 /* SystemInitialize for Chart: '<S277>/Chart' */
31175 L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ = 0U;
31176 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_NO_ACTIVE_CHILD;
31177
31178 /* SystemInitialize for Enabled SubSystem: '<S277>/Slew_at_event' */
31179 /* InitializeConditions for UnitDelay: '<S330>/Unit_Delay' */
31180 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_P.Unit_Delay_InitialCondition_ls;
31181
31182 /* InitializeConditions for UnitDelay: '<S331>/Unit_Delay' */
31183 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Unit_Delay_InitialCondition_i0;
31184
31185 /* InitializeConditions for UnitDelay: '<S334>/FixPt Unit Delay2' */
31186 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ji =
31187 L4_MABX_P.FixPtUnitDelay2_InitialCondit_c;
31188
31189 /* InitializeConditions for UnitDelay: '<S334>/FixPt Unit Delay1' */
31190 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o =
31191 L4_MABX_P.FixPtUnitDelay1_InitialCondit_f;
31192
31193 /* InitializeConditions for UnitDelay: '<S329>/Unit_Delay' */
31194 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_P.Unit_Delay_InitialCondition_ld;
31195
31196 /* SystemInitialize for Outport: '<S328>/F_Out_slewing' */
31197 L4_MABX_B.LogicalOperator_dm = L4_MABX_P.F_Out_slewing_Y0;
31198
31199 /* SystemInitialize for Outport: '<S328>/Out' */
31200 L4_MABX_B.If_Then_Else_n3.Switch = L4_MABX_P.Out_Y0;
31201
31202 /* End of SystemInitialize for SubSystem: '<S277>/Slew_at_event' */
31203 /* End of SystemInitialize for SubSystem: '<S65>/Task_10ms' */
31204
31205 /* SystemInitialize for Enabled SubSystem: '<S620>/PosRapidUpdate_011' */
31206 /* SystemInitialize for Outport: '<S621>/Latitude_' */
31207 L4_MABX_B.SFunction1_o1_ged = L4_MABX_P.Latitude_Y0;
31208
31209 /* SystemInitialize for Outport: '<S621>/Longitude_' */
31210 L4_MABX_B.SFunction1_o2_n5 = L4_MABX_P.Longitude_Y0;
31211
31212 /* SystemInitialize for Outport: '<S621>/RX status' */
31213 L4_MABX_B.SFunction1_o3_ol = L4_MABX_P.RXstatus_Y0_fa;
31214
31215 /* SystemInitialize for Outport: '<S621>/RX time' */
31216 L4_MABX_B.SFunction1_o4_i = L4_MABX_P.RXtime_Y0_ai;
31217
31218 /* SystemInitialize for Outport: '<S621>/RX delta time' */
31219 L4_MABX_B.SFunction1_o5_go = L4_MABX_P.RXdeltatime_Y0_n;
31220
31221 /* End of SystemInitialize for SubSystem: '<S620>/PosRapidUpdate_011' */
31222
31223 /* SystemInitialize for Enabled SubSystem: '<S620>/PosRapidUpdate_1' */
31224 /* SystemInitialize for Outport: '<S622>/Latitude_' */
31225 L4_MABX_B.SFunction1_o1_b5 = L4_MABX_P.Latitude_Y0_i;
31226
31227 /* SystemInitialize for Outport: '<S622>/Longitude_' */
31228 L4_MABX_B.SFunction1_o2_bs = L4_MABX_P.Longitude_Y0_j;
31229
31230 /* SystemInitialize for Outport: '<S622>/RX status' */
31231 L4_MABX_B.SFunction1_o3_aw = L4_MABX_P.RXstatus_Y0_gl;
31232
31233 /* SystemInitialize for Outport: '<S622>/RX time' */
31234 L4_MABX_B.SFunction1_o4_e1 = L4_MABX_P.RXtime_Y0_ii;
31235
31236 /* SystemInitialize for Outport: '<S622>/RX delta time' */
31237 L4_MABX_B.SFunction1_o5_p = L4_MABX_P.RXdeltatime_Y0_i3;
31238
31239 /* End of SystemInitialize for SubSystem: '<S620>/PosRapidUpdate_1' */
31240
31241 /* SystemInitialize for Enabled SubSystem: '<S500>/CCVS1_00' */
31242 /* SystemInitialize for Outport: '<S501>/TwoSpeedAxleSwitch' */
31243 L4_MABX_B.SFunction1_o1_jau = L4_MABX_P.TwoSpeedAxleSwitch_Y0;
31244
31245 /* SystemInitialize for Outport: '<S501>/ParkingBrakeSwitch' */
31246 L4_MABX_B.SFunction1_o2_ka = L4_MABX_P.ParkingBrakeSwitch_Y0;
31247
31248 /* SystemInitialize for Outport: '<S501>/CruiseCtrlPauseSwitch' */
31249 L4_MABX_B.SFunction1_o3_ei = L4_MABX_P.CruiseCtrlPauseSwitch_Y0;
31250
31251 /* SystemInitialize for Outport: '<S501>/ParkBrakeReleaseInhibitRq' */
31252 L4_MABX_B.SFunction1_o4_it = L4_MABX_P.ParkBrakeReleaseInhibitRq_Y0;
31253
31254 /* SystemInitialize for Outport: '<S501>/WheelBasedVehicleSpeed' */
31255 WheelBasedVehicleSpeed = L4_MABX_P.WheelBasedVehicleSpeed_Y0;
31256
31257 /* SystemInitialize for Outport: '<S501>/CruiseCtrlActive' */
31258 L4_MABX_B.SFunction1_o6_mz = L4_MABX_P.CruiseCtrlActive_Y0;
31259
31260 /* SystemInitialize for Outport: '<S501>/CruiseCtrlEnableSwitch' */
31261 L4_MABX_B.SFunction1_o7_iy = L4_MABX_P.CruiseCtrlEnableSwitch_Y0;
31262
31263 /* SystemInitialize for Outport: '<S501>/BrakeSwitch' */
31264 BrakeSwitch = L4_MABX_P.BrakeSwitch_Y0;
31265
31266 /* SystemInitialize for Outport: '<S501>/ClutchSwitch' */
31267 L4_MABX_B.SFunction1_o9_m = L4_MABX_P.ClutchSwitch_Y0;
31268
31269 /* SystemInitialize for Outport: '<S501>/CruiseCtrlSetSwitch' */
31270 L4_MABX_B.SFunction1_o10_mc = L4_MABX_P.CruiseCtrlSetSwitch_Y0;
31271
31272 /* SystemInitialize for Outport: '<S501>/CruiseCtrlCoastSwitch' */
31273 L4_MABX_B.SFunction1_o11_e2 = L4_MABX_P.CruiseCtrlCoastSwitch_Y0;
31274
31275 /* SystemInitialize for Outport: '<S501>/CruiseCtrlResumeSwitch' */
31276 L4_MABX_B.SFunction1_o12_l = L4_MABX_P.CruiseCtrlResumeSwitch_Y0;
31277
31278 /* SystemInitialize for Outport: '<S501>/CruiseCtrlAccelerateSwitch' */
31279 L4_MABX_B.SFunction1_o13_ow = L4_MABX_P.CruiseCtrlAccelerateSwitch_Y0;
31280
31281 /* SystemInitialize for Outport: '<S501>/CruiseCtrlSetSpeed' */
31282 L4_MABX_B.SFunction1_o14_h = L4_MABX_P.CruiseCtrlSetSpeed_Y0;
31283
31284 /* SystemInitialize for Outport: '<S501>/PTOGovernorState' */
31285 L4_MABX_B.SFunction1_o15_g = L4_MABX_P.PTOGovernorState_Y0;
31286
31287 /* SystemInitialize for Outport: '<S501>/CruiseCtrlStates' */
31288 L4_MABX_B.SFunction1_o16_bx = L4_MABX_P.CruiseCtrlStates_Y0;
31289
31290 /* SystemInitialize for Outport: '<S501>/EngIdleIncrementSwitch' */
31291 L4_MABX_B.SFunction1_o17_d = L4_MABX_P.EngIdleIncrementSwitch_Y0;
31292
31293 /* SystemInitialize for Outport: '<S501>/EngIdleDecrementSwitch' */
31294 L4_MABX_B.SFunction1_o18_a = L4_MABX_P.EngIdleDecrementSwitch_Y0;
31295
31296 /* SystemInitialize for Outport: '<S501>/EngTestModeSwitch' */
31297 L4_MABX_B.SFunction1_o19_p = L4_MABX_P.EngTestModeSwitch_Y0;
31298
31299 /* SystemInitialize for Outport: '<S501>/EngShutdownOverrideSwitch' */
31300 L4_MABX_B.SFunction1_o20_a = L4_MABX_P.EngShutdownOverrideSwitch_Y0;
31301
31302 /* SystemInitialize for Outport: '<S501>/RX status' */
31303 L4_MABX_B.SFunction1_o21_bo = L4_MABX_P.RXstatus_Y0_gd;
31304
31305 /* SystemInitialize for Outport: '<S501>/RX time' */
31306 L4_MABX_B.SFunction1_o22_nv = L4_MABX_P.RXtime_Y0_a;
31307
31308 /* SystemInitialize for Outport: '<S501>/RX delta time' */
31309 L4_MABX_B.SFunction1_o23_d = L4_MABX_P.RXdeltatime_Y0_jm;
31310
31311 /* End of SystemInitialize for SubSystem: '<S500>/CCVS1_00' */
31312
31313 /* SystemInitialize for Enabled SubSystem: '<S504>/COGSOGRapidUpdate_00' */
31314 /* SystemInitialize for Outport: '<S505>/SID' */
31315 L4_MABX_B.SFunction1_o1_o2 = L4_MABX_P.SID_Y0;
31316
31317 /* SystemInitialize for Outport: '<S505>/COGReference' */
31318 L4_MABX_B.SFunction1_o2_l4 = L4_MABX_P.COGReference_Y0;
31319
31320 /* SystemInitialize for Outport: '<S505>/CourseOverGround' */
31321 L4_MABX_B.SFunction1_o3_cd = L4_MABX_P.CourseOverGround_Y0;
31322
31323 /* SystemInitialize for Outport: '<S505>/SpeedOverGround' */
31324 L4_MABX_B.SFunction1_o4_g4 = L4_MABX_P.SpeedOverGround_Y0;
31325
31326 /* SystemInitialize for Outport: '<S505>/RX status' */
31327 L4_MABX_B.SFunction1_o5_ns = L4_MABX_P.RXstatus_Y0_or;
31328
31329 /* SystemInitialize for Outport: '<S505>/RX time' */
31330 L4_MABX_B.SFunction1_o6_kl = L4_MABX_P.RXtime_Y0_ag;
31331
31332 /* SystemInitialize for Outport: '<S505>/RX delta time' */
31333 L4_MABX_B.SFunction1_o7_ct = L4_MABX_P.RXdeltatime_Y0_jb;
31334
31335 /* End of SystemInitialize for SubSystem: '<S504>/COGSOGRapidUpdate_00' */
31336
31337 /* SystemInitialize for Enabled SubSystem: '<S504>/COGSOGRapidUpdate_1' */
31338 /* SystemInitialize for Outport: '<S506>/SID' */
31339 L4_MABX_B.SFunction1_o1_j4 = L4_MABX_P.SID_Y0_l;
31340
31341 /* SystemInitialize for Outport: '<S506>/COGReference' */
31342 L4_MABX_B.SFunction1_o2_mv = L4_MABX_P.COGReference_Y0_k;
31343
31344 /* SystemInitialize for Outport: '<S506>/CourseOverGround' */
31345 L4_MABX_B.SFunction1_o3_cp = L4_MABX_P.CourseOverGround_Y0_n;
31346
31347 /* SystemInitialize for Outport: '<S506>/SpeedOverGround' */
31348 L4_MABX_B.SFunction1_o4_cw = L4_MABX_P.SpeedOverGround_Y0_b;
31349
31350 /* SystemInitialize for Outport: '<S506>/RX status' */
31351 L4_MABX_B.SFunction1_o5_juk = L4_MABX_P.RXstatus_Y0_f;
31352
31353 /* SystemInitialize for Outport: '<S506>/RX time' */
31354 L4_MABX_B.SFunction1_o6_fvx = L4_MABX_P.RXtime_Y0_o;
31355
31356 /* SystemInitialize for Outport: '<S506>/RX delta time' */
31357 L4_MABX_B.SFunction1_o7_jc = L4_MABX_P.RXdeltatime_Y0_mx;
31358
31359 /* End of SystemInitialize for SubSystem: '<S504>/COGSOGRapidUpdate_1' */
31360
31361 /* SystemInitialize for Atomic SubSystem: '<S834>/CAN_TX_100ms' */
31362 /* SystemInitialize for Enabled SubSystem: '<S871>/Rolling_15_counter' */
31363 /* InitializeConditions for UnitDelay: '<S913>/Unit_Delay' */
31364 L4_MABX_DW.Unit_Delay_DSTATE = L4_MABX_P.Unit_Delay_InitialCondition_m;
31365
31366 /* SystemInitialize for Outport: '<S913>/Rolling_15_counter' */
31367 L4_MABX_B.Unit_Delay = L4_MABX_P.Rolling_15_counter_Y0;
31368
31369 /* End of SystemInitialize for SubSystem: '<S871>/Rolling_15_counter' */
31370
31371 /* SystemInitialize for Enabled SubSystem: '<S893>/PropB_XPR_FC' */
31372 /* SystemInitialize for Outport: '<S895>/TX status' */
31373 L4_MABX_B.SFunction1_o1_ge = L4_MABX_P.TXstatus_Y0_f;
31374
31375 /* SystemInitialize for Outport: '<S895>/TX time' */
31376 L4_MABX_B.SFunction1_o2_nn = L4_MABX_P.TXtime_Y0_d1;
31377
31378 /* SystemInitialize for Outport: '<S895>/TX delta time' */
31379 L4_MABX_B.SFunction1_o3_o0 = L4_MABX_P.TXdeltatime_Y0_ld;
31380
31381 /* SystemInitialize for Outport: '<S895>/TX delay time' */
31382 L4_MABX_B.SFunction1_o4_e = L4_MABX_P.TXdelaytime_Y0_m;
31383
31384 /* End of SystemInitialize for SubSystem: '<S893>/PropB_XPR_FC' */
31385
31386 /* SystemInitialize for Enabled SubSystem: '<S894>/PropB_XPR_FC' */
31387 /* SystemInitialize for Outport: '<S896>/TX status' */
31388 L4_MABX_B.SFunction1_o1_a = L4_MABX_P.TXstatus_Y0_k;
31389
31390 /* SystemInitialize for Outport: '<S896>/TX time' */
31391 L4_MABX_B.SFunction1_o2_g3 = L4_MABX_P.TXtime_Y0_h;
31392
31393 /* SystemInitialize for Outport: '<S896>/TX delta time' */
31394 L4_MABX_B.SFunction1_o3_n = L4_MABX_P.TXdeltatime_Y0_pu;
31395
31396 /* SystemInitialize for Outport: '<S896>/TX delay time' */
31397 L4_MABX_B.SFunction1_o4_lc = L4_MABX_P.TXdelaytime_Y0_n;
31398
31399 /* End of SystemInitialize for SubSystem: '<S894>/PropB_XPR_FC' */
31400
31401 /* SystemInitialize for Enabled SubSystem: '<S923>/Std_PosRapidUpdate_01' */
31402 /* SystemInitialize for Outport: '<S924>/TX status' */
31403 L4_MABX_B.SFunction1_o1_fh = L4_MABX_P.TXstatus_Y0_n;
31404
31405 /* SystemInitialize for Outport: '<S924>/TX time' */
31406 L4_MABX_B.SFunction1_o2_gp = L4_MABX_P.TXtime_Y0_dq;
31407
31408 /* SystemInitialize for Outport: '<S924>/TX delta time' */
31409 L4_MABX_B.SFunction1_o3_h = L4_MABX_P.TXdeltatime_Y0_a;
31410
31411 /* SystemInitialize for Outport: '<S924>/TX delay time' */
31412 L4_MABX_B.SFunction1_o4_hp = L4_MABX_P.TXdelaytime_Y0_e;
31413
31414 /* End of SystemInitialize for SubSystem: '<S923>/Std_PosRapidUpdate_01' */
31415
31416 /* SystemInitialize for Enabled SubSystem: '<S873>/CCVS1_00' */
31417 /* SystemInitialize for Outport: '<S875>/TX status' */
31418 L4_MABX_B.SFunction1_o1_p = L4_MABX_P.TXstatus_Y0_j;
31419
31420 /* SystemInitialize for Outport: '<S875>/TX time' */
31421 L4_MABX_B.SFunction1_o2_pl = L4_MABX_P.TXtime_Y0_d;
31422
31423 /* SystemInitialize for Outport: '<S875>/TX delta time' */
31424 L4_MABX_B.SFunction1_o3_eq = L4_MABX_P.TXdeltatime_Y0_p;
31425
31426 /* SystemInitialize for Outport: '<S875>/TX delay time' */
31427 L4_MABX_B.SFunction1_o4_du = L4_MABX_P.TXdelaytime_Y0_i;
31428
31429 /* End of SystemInitialize for SubSystem: '<S873>/CCVS1_00' */
31430
31431 /* SystemInitialize for Enabled SubSystem: '<S874>/CCVS1_00' */
31432 /* SystemInitialize for Outport: '<S876>/TX status' */
31433 L4_MABX_B.SFunction1_o1_n = L4_MABX_P.TXstatus_Y0_h;
31434
31435 /* SystemInitialize for Outport: '<S876>/TX time' */
31436 L4_MABX_B.SFunction1_o2_lt = L4_MABX_P.TXtime_Y0_i;
31437
31438 /* SystemInitialize for Outport: '<S876>/TX delta time' */
31439 L4_MABX_B.SFunction1_o3_lt = L4_MABX_P.TXdeltatime_Y0_e;
31440
31441 /* SystemInitialize for Outport: '<S876>/TX delay time' */
31442 L4_MABX_B.SFunction1_o4_d1 = L4_MABX_P.TXdelaytime_Y0_l;
31443
31444 /* End of SystemInitialize for SubSystem: '<S874>/CCVS1_00' */
31445
31446 /* SystemInitialize for Enabled SubSystem: '<S877>/PropB_REAX_5_E4' */
31447 /* SystemInitialize for Outport: '<S879>/TX status' */
31448 L4_MABX_B.SFunction1_o1_iz = L4_MABX_P.TXstatus_Y0_pd;
31449
31450 /* SystemInitialize for Outport: '<S879>/TX time' */
31451 L4_MABX_B.SFunction1_o2_kw = L4_MABX_P.TXtime_Y0_c;
31452
31453 /* SystemInitialize for Outport: '<S879>/TX delta time' */
31454 L4_MABX_B.SFunction1_o3_e = L4_MABX_P.TXdeltatime_Y0_k;
31455
31456 /* SystemInitialize for Outport: '<S879>/TX delay time' */
31457 L4_MABX_B.SFunction1_o4_li = L4_MABX_P.TXdelaytime_Y0_k;
31458
31459 /* End of SystemInitialize for SubSystem: '<S877>/PropB_REAX_5_E4' */
31460
31461 /* SystemInitialize for Enabled SubSystem: '<S878>/PropB_REAX_5_E4' */
31462 /* SystemInitialize for Outport: '<S880>/TX status' */
31463 L4_MABX_B.SFunction1_o1_cu = L4_MABX_P.TXstatus_Y0_jo;
31464
31465 /* SystemInitialize for Outport: '<S880>/TX time' */
31466 L4_MABX_B.SFunction1_o2_hn = L4_MABX_P.TXtime_Y0_g;
31467
31468 /* SystemInitialize for Outport: '<S880>/TX delta time' */
31469 L4_MABX_B.SFunction1_o3_k = L4_MABX_P.TXdeltatime_Y0_ka;
31470
31471 /* SystemInitialize for Outport: '<S880>/TX delay time' */
31472 L4_MABX_B.SFunction1_o4_lw = L4_MABX_P.TXdelaytime_Y0_d;
31473
31474 /* End of SystemInitialize for SubSystem: '<S878>/PropB_REAX_5_E4' */
31475
31476 /* SystemInitialize for Enabled SubSystem: '<S897>/Std_COGSOGRapidUpdate_01' */
31477 /* SystemInitialize for Outport: '<S898>/TX status' */
31478 L4_MABX_B.SFunction1_o1_hs = L4_MABX_P.TXstatus_Y0_l;
31479
31480 /* SystemInitialize for Outport: '<S898>/TX time' */
31481 L4_MABX_B.SFunction1_o2_j = L4_MABX_P.TXtime_Y0_cy;
31482
31483 /* SystemInitialize for Outport: '<S898>/TX delta time' */
31484 L4_MABX_B.SFunction1_o3_d = L4_MABX_P.TXdeltatime_Y0_n;
31485
31486 /* SystemInitialize for Outport: '<S898>/TX delay time' */
31487 L4_MABX_B.SFunction1_o4_n = L4_MABX_P.TXdelaytime_Y0_kj;
31488
31489 /* End of SystemInitialize for SubSystem: '<S897>/Std_COGSOGRapidUpdate_01' */
31490
31491 /* SystemInitialize for Enabled SubSystem: '<S899>/EBC1_TX' */
31492 /* SystemInitialize for Outport: '<S900>/TX status' */
31493 L4_MABX_B.SFunction1_o1_ga = L4_MABX_P.TXstatus_Y0_a;
31494
31495 /* SystemInitialize for Outport: '<S900>/TX time' */
31496 L4_MABX_B.SFunction1_o2_bp = L4_MABX_P.TXtime_Y0_j;
31497
31498 /* SystemInitialize for Outport: '<S900>/TX delta time' */
31499 L4_MABX_B.SFunction1_o3_gn = L4_MABX_P.TXdeltatime_Y0_li;
31500
31501 /* SystemInitialize for Outport: '<S900>/TX delay time' */
31502 L4_MABX_B.SFunction1_o4_dg = L4_MABX_P.TXdelaytime_Y0_dk;
31503
31504 /* End of SystemInitialize for SubSystem: '<S899>/EBC1_TX' */
31505 /* End of SystemInitialize for SubSystem: '<S834>/CAN_TX_100ms' */
31506
31507 /* SystemInitialize for Atomic SubSystem: '<S834>/CAN_TX_10ms' */
31508 /* InitializeConditions for UnitDelay: '<S991>/Unit_Delay' */
31509 L4_MABX_DW.Unit_Delay_DSTATE_o4 = L4_MABX_P.Unit_Delay_InitialCondition_e4;
31510
31511 /* InitializeConditions for UnitDelay: '<S992>/Unit Delay' */
31512 L4_MABX_DW.UnitDelay_DSTATE_n = L4_MABX_P.UnitDelay_InitialCondition_j;
31513
31514 /* SystemInitialize for Enabled SubSystem: '<S936>/ACCS' */
31515 /* SystemInitialize for Outport: '<S937>/TX status' */
31516 L4_MABX_B.SFunction1_o1_hi = L4_MABX_P.TXstatus_Y0_i;
31517
31518 /* SystemInitialize for Outport: '<S937>/TX time' */
31519 L4_MABX_B.SFunction1_o2_p = L4_MABX_P.TXtime_Y0_jf;
31520
31521 /* SystemInitialize for Outport: '<S937>/TX delta time' */
31522 L4_MABX_B.SFunction1_o3_js = L4_MABX_P.TXdeltatime_Y0_nv;
31523
31524 /* SystemInitialize for Outport: '<S937>/TX delay time' */
31525 L4_MABX_B.SFunction1_o4_h = L4_MABX_P.TXdelaytime_Y0_i4;
31526
31527 /* End of SystemInitialize for SubSystem: '<S936>/ACCS' */
31528
31529 /* SystemInitialize for Enabled SubSystem: '<S944>/EEC1_00' */
31530 /* SystemInitialize for Outport: '<S946>/TX status' */
31531 L4_MABX_B.SFunction1_o1_fn = L4_MABX_P.TXstatus_Y0_jj;
31532
31533 /* SystemInitialize for Outport: '<S946>/TX time' */
31534 L4_MABX_B.SFunction1_o2_f5 = L4_MABX_P.TXtime_Y0_g3;
31535
31536 /* SystemInitialize for Outport: '<S946>/TX delta time' */
31537 L4_MABX_B.SFunction1_o3_l = L4_MABX_P.TXdeltatime_Y0_p2;
31538
31539 /* SystemInitialize for Outport: '<S946>/TX delay time' */
31540 L4_MABX_B.SFunction1_o4_m = L4_MABX_P.TXdelaytime_Y0_mn;
31541
31542 /* End of SystemInitialize for SubSystem: '<S944>/EEC1_00' */
31543
31544 /* SystemInitialize for Enabled SubSystem: '<S945>/EEC1_00' */
31545 /* SystemInitialize for Outport: '<S947>/TX status' */
31546 L4_MABX_B.SFunction1_o1_c = L4_MABX_P.TXstatus_Y0_az;
31547
31548 /* SystemInitialize for Outport: '<S947>/TX time' */
31549 L4_MABX_B.SFunction1_o2_nx = L4_MABX_P.TXtime_Y0_c1;
31550
31551 /* SystemInitialize for Outport: '<S947>/TX delta time' */
31552 L4_MABX_B.SFunction1_o3_iv = L4_MABX_P.TXdeltatime_Y0_eg;
31553
31554 /* SystemInitialize for Outport: '<S947>/TX delay time' */
31555 L4_MABX_B.SFunction1_o4_p3 = L4_MABX_P.TXdelaytime_Y0_g;
31556
31557 /* End of SystemInitialize for SubSystem: '<S945>/EEC1_00' */
31558
31559 /* SystemInitialize for Merge: '<S962>/Merge' */
31560 L4_MABX_B.Merge = L4_MABX_P.Merge_InitialOutput;
31561
31562 /* SystemInitialize for Enabled SubSystem: '<S948>/PropB_REAX_1_E4' */
31563 /* SystemInitialize for Outport: '<S950>/TX status' */
31564 L4_MABX_B.SFunction1_o1_g = L4_MABX_P.TXstatus_Y0_m;
31565
31566 /* SystemInitialize for Outport: '<S950>/TX time' */
31567 L4_MABX_B.SFunction1_o2_a = L4_MABX_P.TXtime_Y0_l;
31568
31569 /* SystemInitialize for Outport: '<S950>/TX delta time' */
31570 L4_MABX_B.SFunction1_o3_pb = L4_MABX_P.TXdeltatime_Y0_af;
31571
31572 /* SystemInitialize for Outport: '<S950>/TX delay time' */
31573 L4_MABX_B.SFunction1_o4_lk = L4_MABX_P.TXdelaytime_Y0_c;
31574
31575 /* End of SystemInitialize for SubSystem: '<S948>/PropB_REAX_1_E4' */
31576
31577 /* SystemInitialize for Enabled SubSystem: '<S949>/PropB_REAX_1_E4' */
31578 /* SystemInitialize for Outport: '<S951>/TX status' */
31579 L4_MABX_B.SFunction1_o1_dr = L4_MABX_P.TXstatus_Y0_n0;
31580
31581 /* SystemInitialize for Outport: '<S951>/TX time' */
31582 L4_MABX_B.SFunction1_o2_b = L4_MABX_P.TXtime_Y0_cv;
31583
31584 /* SystemInitialize for Outport: '<S951>/TX delta time' */
31585 L4_MABX_B.SFunction1_o3_b = L4_MABX_P.TXdeltatime_Y0_m;
31586
31587 /* SystemInitialize for Outport: '<S951>/TX delay time' */
31588 L4_MABX_B.SFunction1_o4_a0 = L4_MABX_P.TXdelaytime_Y0_p;
31589
31590 /* End of SystemInitialize for SubSystem: '<S949>/PropB_REAX_1_E4' */
31591
31592 /* SystemInitialize for Enabled SubSystem: '<S958>/VDC2_0B' */
31593 /* SystemInitialize for Outport: '<S959>/TX status' */
31594 L4_MABX_B.SFunction1_o1_mr = L4_MABX_P.TXstatus_Y0_fo;
31595
31596 /* SystemInitialize for Outport: '<S959>/TX time' */
31597 L4_MABX_B.SFunction1_o2_lz = L4_MABX_P.TXtime_Y0_o;
31598
31599 /* SystemInitialize for Outport: '<S959>/TX delta time' */
31600 L4_MABX_B.SFunction1_o3_pt = L4_MABX_P.TXdeltatime_Y0_b;
31601
31602 /* SystemInitialize for Outport: '<S959>/TX delay time' */
31603 L4_MABX_B.SFunction1_o4_l = L4_MABX_P.TXdelaytime_Y0_o;
31604
31605 /* End of SystemInitialize for SubSystem: '<S958>/VDC2_0B' */
31606 /* End of SystemInitialize for SubSystem: '<S834>/CAN_TX_10ms' */
31607
31608 /* SystemInitialize for Atomic SubSystem: '<S834>/CAN_TX_20ms' */
31609 /* InitializeConditions for UnitDelay: '<S996>/Unit_Delay' */
31610 L4_MABX_DW.Unit_Delay_DSTATE_ly = L4_MABX_P.Unit_Delay_InitialCondition_k5;
31611
31612 /* InitializeConditions for UnitDelay: '<S1019>/Unit_Delay' */
31613 L4_MABX_DW.Unit_Delay_DSTATE_a = L4_MABX_P.Unit_Delay_InitialCondition_h2;
31614
31615 /* InitializeConditions for UnitDelay: '<S1020>/Unit Delay' */
31616 L4_MABX_DW.UnitDelay_DSTATE_j = L4_MABX_P.UnitDelay_InitialCondition_a;
31617
31618 /* SystemInitialize for Enabled SubSystem: '<S1003>/PropB_XBR_B3' */
31619 /* SystemInitialize for Outport: '<S1004>/TX status' */
31620 L4_MABX_B.SFunction1_o1_dy = L4_MABX_P.TXstatus_Y0_e;
31621
31622 /* SystemInitialize for Outport: '<S1004>/TX time' */
31623 L4_MABX_B.SFunction1_o2_o = L4_MABX_P.TXtime_Y0_ly;
31624
31625 /* SystemInitialize for Outport: '<S1004>/TX delta time' */
31626 L4_MABX_B.SFunction1_o3_oy = L4_MABX_P.TXdeltatime_Y0_o;
31627
31628 /* SystemInitialize for Outport: '<S1004>/TX delay time' */
31629 L4_MABX_B.SFunction1_o4_f = L4_MABX_P.TXdelaytime_Y0_h;
31630
31631 /* End of SystemInitialize for SubSystem: '<S1003>/PropB_XBR_B3' */
31632
31633 /* SystemInitialize for Enabled SubSystem: '<S1005>/PropB_Bendix_2C2_XPR' */
31634 /* SystemInitialize for Outport: '<S1006>/TX status' */
31635 L4_MABX_B.SFunction1_o1_m = L4_MABX_P.TXstatus_Y0_pb;
31636
31637 /* SystemInitialize for Outport: '<S1006>/TX time' */
31638 L4_MABX_B.SFunction1_o2_m = L4_MABX_P.TXtime_Y0_jl;
31639
31640 /* SystemInitialize for Outport: '<S1006>/TX delta time' */
31641 L4_MABX_B.SFunction1_o3_p = L4_MABX_P.TXdeltatime_Y0_c;
31642
31643 /* SystemInitialize for Outport: '<S1006>/TX delay time' */
31644 L4_MABX_B.SFunction1_o4_c = L4_MABX_P.TXdelaytime_Y0_hd;
31645
31646 /* End of SystemInitialize for SubSystem: '<S1005>/PropB_Bendix_2C2_XPR' */
31647
31648 /* SystemInitialize for Enabled SubSystem: '<S1013>/Std_OdometryData' */
31649 /* SystemInitialize for Outport: '<S1014>/TX status' */
31650 L4_MABX_B.SFunction1_o1_kr = L4_MABX_P.TXstatus_Y0_c;
31651
31652 /* SystemInitialize for Outport: '<S1014>/TX time' */
31653 L4_MABX_B.SFunction1_o2_g = L4_MABX_P.TXtime_Y0_n;
31654
31655 /* SystemInitialize for Outport: '<S1014>/TX delta time' */
31656 L4_MABX_B.SFunction1_o3_j = L4_MABX_P.TXdeltatime_Y0_h;
31657
31658 /* SystemInitialize for Outport: '<S1014>/TX delay time' */
31659 L4_MABX_B.SFunction1_o4_pf = L4_MABX_P.TXdelaytime_Y0_d3;
31660
31661 /* End of SystemInitialize for SubSystem: '<S1013>/Std_OdometryData' */
31662 /* End of SystemInitialize for SubSystem: '<S834>/CAN_TX_20ms' */
31663
31664 /* SystemInitialize for Atomic SubSystem: '<S834>/CAN_TX_5000ms' */
31665 /* InitializeConditions for UnitDelay: '<S1034>/Unit_Delay' */
31666 L4_MABX_DW.Unit_Delay_DSTATE_l = L4_MABX_P.Unit_Delay_InitialCondition_g3;
31667
31668 /* InitializeConditions for UnitDelay: '<S1035>/Unit Delay' */
31669 L4_MABX_DW.UnitDelay_DSTATE_c = L4_MABX_P.UnitDelay_InitialCondition_pq;
31670
31671 /* SystemInitialize for Enabled SubSystem: '<S1028>/RQST_13_E4' */
31672 /* SystemInitialize for Outport: '<S1030>/TX status' */
31673 L4_MABX_B.SFunction1_o1_h = L4_MABX_P.TXstatus_Y0_cm;
31674
31675 /* SystemInitialize for Outport: '<S1030>/TX time' */
31676 L4_MABX_B.SFunction1_o2_f = L4_MABX_P.TXtime_Y0_f;
31677
31678 /* SystemInitialize for Outport: '<S1030>/TX delta time' */
31679 L4_MABX_B.SFunction1_o3_m = L4_MABX_P.TXdeltatime_Y0_j;
31680
31681 /* SystemInitialize for Outport: '<S1030>/TX delay time' */
31682 L4_MABX_B.SFunction1_o4_a = L4_MABX_P.TXdelaytime_Y0_og;
31683
31684 /* End of SystemInitialize for SubSystem: '<S1028>/RQST_13_E4' */
31685 /* End of SystemInitialize for SubSystem: '<S834>/CAN_TX_5000ms' */
31686
31687 /* SystemInitialize for Enabled SubSystem: '<S635>/TC1_03_05' */
31688 /* SystemInitialize for Outport: '<S636>/SPN681_TransGearShiftInhibitReq' */
31689 L4_MABX_B.SFunction1_o1_cr = L4_MABX_P.SPN681_TransGearShiftInhibitReq;
31690
31691 /* SystemInitialize for Outport: '<S636>/SPN682_TransTrqConvLockupDisReq' */
31692 L4_MABX_B.SFunction1_o2_ir = L4_MABX_P.SPN682_TransTrqConvLockupDisReq;
31693
31694 /* SystemInitialize for Outport: '<S636>/SPN683_DisengageDrivelineReq' */
31695 L4_MABX_B.SFunction1_o3_b4 = L4_MABX_P.SPN683_DisengageDrivelineReq_Y0;
31696
31697 /* SystemInitialize for Outport: '<S636>/SPN4242_TransRevGearShiftInhibRq' */
31698 L4_MABX_B.SFunction1_o4_on = L4_MABX_P.SPN4242_TransRevGearShiftInhibR;
31699
31700 /* SystemInitialize for Outport: '<S636>/SPN684_RequestedPercClutchSlip' */
31701 L4_MABX_B.SFunction1_o5_f = L4_MABX_P.SPN684_RequestedPercClutchSlip_;
31702
31703 /* SystemInitialize for Outport: '<S636>/SPN525_TransRequestedGear' */
31704 L4_MABX_B.SFunction1_o6_l = L4_MABX_P.SPN525_TransRequestedGear_Y0;
31705
31706 /* SystemInitialize for Outport: '<S636>/SPN685_DisengageDiffLockRqFrAx1' */
31707 L4_MABX_B.SFunction1_o7_d = L4_MABX_P.SPN685_DisengageDiffLockRqFrAx1;
31708
31709 /* SystemInitialize for Outport: '<S636>/SPN686_DisengageDiffLockRqFrAx2' */
31710 L4_MABX_B.SFunction1_o8_g = L4_MABX_P.SPN686_DisengageDiffLockRqFrAx2;
31711
31712 /* SystemInitialize for Outport: '<S636>/SPN687_DisengageDiffLockRqRrAx1' */
31713 L4_MABX_B.SFunction1_o9_l = L4_MABX_P.SPN687_DisengageDiffLockRqRrAx1;
31714
31715 /* SystemInitialize for Outport: '<S636>/SPN688_DisengageDiffLockRqRrAx2' */
31716 L4_MABX_B.SFunction1_o10_d = L4_MABX_P.SPN688_DisengageDiffLockRqRrAx2;
31717
31718 /* SystemInitialize for Outport: '<S636>/SPN689_DisengageDiffLockRqC' */
31719 L4_MABX_B.SFunction1_o11 = L4_MABX_P.SPN689_DisengageDiffLockRqC_Y0;
31720
31721 /* SystemInitialize for Outport: '<S636>/SPN690_DisengageDiffLockRqCF' */
31722 L4_MABX_B.SFunction1_o12 = L4_MABX_P.SPN690_DisengageDiffLockRqCF_Y0;
31723
31724 /* SystemInitialize for Outport: '<S636>/SPN691_DisengageDiffLockRqCR' */
31725 L4_MABX_B.SFunction1_o13 = L4_MABX_P.SPN691_DisengageDiffLockRqCR_Y0;
31726
31727 /* SystemInitialize for Outport: '<S636>/SPN5762_TransLoadRedInhibitRq' */
31728 L4_MABX_B.SFunction1_o14 = L4_MABX_P.SPN5762_TransLoadRedInhibitRq_Y;
31729
31730 /* SystemInitialize for Outport: '<S636>/SPN1852_TransmissionMode1' */
31731 L4_MABX_B.SFunction1_o15 = L4_MABX_P.SPN1852_TransmissionMode1_Y0;
31732
31733 /* SystemInitialize for Outport: '<S636>/SPN1853_TransmissionMode2' */
31734 L4_MABX_B.SFunction1_o16 = L4_MABX_P.SPN1853_TransmissionMode2_Y0;
31735
31736 /* SystemInitialize for Outport: '<S636>/SPN1854_TransmissionMode3' */
31737 L4_MABX_B.SFunction1_o17 = L4_MABX_P.SPN1854_TransmissionMode3_Y0;
31738
31739 /* SystemInitialize for Outport: '<S636>/SPN1855_TransmissionMode4' */
31740 L4_MABX_B.SFunction1_o18 = L4_MABX_P.SPN1855_TransmissionMode4_Y0;
31741
31742 /* SystemInitialize for Outport: '<S636>/SPN7695_TransAutoNeutralRequest' */
31743 L4_MABX_B.SFunction1_o19 = L4_MABX_P.SPN7695_TransAutoNeutralRequest;
31744
31745 /* SystemInitialize for Outport: '<S636>/SPN4255_TransRequestedLaunchGear' */
31746 L4_MABX_B.SFunction1_o20 = L4_MABX_P.SPN4255_TransRequestedLaunchGea;
31747
31748 /* SystemInitialize for Outport: '<S636>/SPN2985_TransShiftSelDispModeSw' */
31749 L4_MABX_B.SFunction1_o21 = L4_MABX_P.SPN2985_TransShiftSelDispModeSw;
31750
31751 /* SystemInitialize for Outport: '<S636>/SPN4246_TransmissionMode5' */
31752 L4_MABX_B.SFunction1_o22 = L4_MABX_P.SPN4246_TransmissionMode5_Y0;
31753
31754 /* SystemInitialize for Outport: '<S636>/SPN4247_TransmissionMode6' */
31755 L4_MABX_B.SFunction1_o23 = L4_MABX_P.SPN4247_TransmissionMode6_Y0;
31756
31757 /* SystemInitialize for Outport: '<S636>/SPN4248_TransmissionMode7' */
31758 L4_MABX_B.SFunction1_o24 = L4_MABX_P.SPN4248_TransmissionMode7_Y0;
31759
31760 /* SystemInitialize for Outport: '<S636>/SPN4249_TransmissionMode8' */
31761 L4_MABX_B.SFunction1_o25 = L4_MABX_P.SPN4249_TransmissionMode8_Y0;
31762
31763 /* SystemInitialize for Outport: '<S636>/RX status' */
31764 L4_MABX_B.SFunction1_o26 = L4_MABX_P.RXstatus_Y0_bg;
31765
31766 /* SystemInitialize for Outport: '<S636>/RX time' */
31767 L4_MABX_B.SFunction1_o27 = L4_MABX_P.RXtime_Y0_od;
31768
31769 /* SystemInitialize for Outport: '<S636>/RX delta time' */
31770 L4_MABX_B.SFunction1_o28 = L4_MABX_P.RXdeltatime_Y0_p;
31771
31772 /* End of SystemInitialize for SubSystem: '<S635>/TC1_03_05' */
31773
31774 /* SystemInitialize for Atomic SubSystem: '<S834>/CAN_TX_50ms' */
31775 /* SystemInitialize for Enabled SubSystem: '<S1039>/CCVS1_E3' */
31776 /* SystemInitialize for Outport: '<S1041>/TX status' */
31777 L4_MABX_B.SFunction1_o1_dg = L4_MABX_P.TXstatus_Y0_c4;
31778
31779 /* SystemInitialize for Outport: '<S1041>/TX time' */
31780 L4_MABX_B.SFunction1_o2_l = L4_MABX_P.TXtime_Y0_h1;
31781
31782 /* SystemInitialize for Outport: '<S1041>/TX delta time' */
31783 L4_MABX_B.SFunction1_o3_i = L4_MABX_P.TXdeltatime_Y0_ct;
31784
31785 /* SystemInitialize for Outport: '<S1041>/TX delay time' */
31786 L4_MABX_B.SFunction1_o4_p = L4_MABX_P.TXdelaytime_Y0_ia;
31787
31788 /* End of SystemInitialize for SubSystem: '<S1039>/CCVS1_E3' */
31789
31790 /* SystemInitialize for Enabled SubSystem: '<S1040>/TC1_03_05' */
31791 /* SystemInitialize for Outport: '<S1042>/TX status' */
31792 L4_MABX_B.SFunction1_o1_f = L4_MABX_P.TXstatus_Y0_ay;
31793
31794 /* SystemInitialize for Outport: '<S1042>/TX time' */
31795 L4_MABX_B.SFunction1_o2_k = L4_MABX_P.TXtime_Y0_ft;
31796
31797 /* SystemInitialize for Outport: '<S1042>/TX delta time' */
31798 L4_MABX_B.SFunction1_o3_a = L4_MABX_P.TXdeltatime_Y0_cf;
31799
31800 /* SystemInitialize for Outport: '<S1042>/TX delay time' */
31801 L4_MABX_B.SFunction1_o4_d = L4_MABX_P.TXdelaytime_Y0_ea;
31802
31803 /* End of SystemInitialize for SubSystem: '<S1040>/TC1_03_05' */
31804 /* End of SystemInitialize for SubSystem: '<S834>/CAN_TX_50ms' */
31805
31806 /* SystemInitialize for Enabled SubSystem: '<S633>/SystemTime_01' */
31807 /* SystemInitialize for Outport: '<S634>/SID' */
31808 L4_MABX_B.SFunction1_o1_bc = L4_MABX_P.SID_Y0_c;
31809
31810 /* SystemInitialize for Outport: '<S634>/Source' */
31811 L4_MABX_B.SFunction1_o2_oc = L4_MABX_P.Source_Y0;
31812
31813 /* SystemInitialize for Outport: '<S634>/Date' */
31814 L4_MABX_B.SFunction1_o3_gr = L4_MABX_P.Date_Y0;
31815
31816 /* SystemInitialize for Outport: '<S634>/Time' */
31817 L4_MABX_B.SFunction1_o4_og = L4_MABX_P.Time_Y0;
31818
31819 /* SystemInitialize for Outport: '<S634>/RX status' */
31820 L4_MABX_B.SFunction1_o5_l = L4_MABX_P.RXstatus_Y0_fr;
31821
31822 /* SystemInitialize for Outport: '<S634>/RX time' */
31823 L4_MABX_B.SFunction1_o6_o = L4_MABX_P.RXtime_Y0_ex;
31824
31825 /* SystemInitialize for Outport: '<S634>/RX delta time' */
31826 L4_MABX_B.SFunction1_o7_c = L4_MABX_P.RXdeltatime_Y0_f;
31827
31828 /* End of SystemInitialize for SubSystem: '<S633>/SystemTime_01' */
31829
31830 /* SystemInitialize for Enabled SubSystem: '<S1052>/Std_SystemTime_01' */
31831 /* SystemInitialize for Outport: '<S1054>/TX status' */
31832 L4_MABX_B.SFunction1_o1_d = L4_MABX_P.TXstatus_Y0_ks;
31833
31834 /* SystemInitialize for Outport: '<S1054>/TX time' */
31835 L4_MABX_B.SFunction1_o2_c = L4_MABX_P.TXtime_Y0_dg;
31836
31837 /* SystemInitialize for Outport: '<S1054>/TX delta time' */
31838 L4_MABX_B.SFunction1_o3 = L4_MABX_P.TXdeltatime_Y0_mo;
31839
31840 /* SystemInitialize for Outport: '<S1054>/TX delay time' */
31841 L4_MABX_B.SFunction1_o4 = L4_MABX_P.TXdelaytime_Y0_l2;
31842
31843 /* End of SystemInitialize for SubSystem: '<S1052>/Std_SystemTime_01' */
31844
31845 /* SystemInitialize for Triggered SubSystem: '<S1047>/CAN_TYPE1_TX_M1_C1' */
31846 /* SystemInitialize for Outport: '<S1049>/TX status' */
31847 L4_MABX_B.SFunction1_o1_k = L4_MABX_P.TXstatus_Y0_b;
31848
31849 /* SystemInitialize for Outport: '<S1049>/TX time' */
31850 L4_MABX_B.SFunction1_o2_e0 = L4_MABX_P.TXtime_Y0_m;
31851
31852 /* SystemInitialize for Outport: '<S1049>/TX delta time' */
31853 L4_MABX_B.SFunction1_o3_o = L4_MABX_P.TXdeltatime_Y0_ob;
31854
31855 /* SystemInitialize for Outport: '<S1049>/TX delay time' */
31856 L4_MABX_B.SFunction1_o4_kc = L4_MABX_P.TXdelaytime_Y0_jd;
31857
31858 /* End of SystemInitialize for SubSystem: '<S1047>/CAN_TYPE1_TX_M1_C1' */
31859
31860 /* SystemInitialize for Triggered SubSystem: '<S1048>/CAN_TYPE1_TX_M1_C1' */
31861 /* SystemInitialize for Outport: '<S1050>/TX status' */
31862 L4_MABX_B.SFunction1_o1_i = L4_MABX_P.TXstatus_Y0_b3;
31863
31864 /* SystemInitialize for Outport: '<S1050>/TX time' */
31865 L4_MABX_B.SFunction1_o2_h = L4_MABX_P.TXtime_Y0_fl;
31866
31867 /* SystemInitialize for Outport: '<S1050>/TX delta time' */
31868 L4_MABX_B.SFunction1_o3_g = L4_MABX_P.TXdeltatime_Y0_hs;
31869
31870 /* SystemInitialize for Outport: '<S1050>/TX delay time' */
31871 L4_MABX_B.SFunction1_o4_k = L4_MABX_P.TXdelaytime_Y0_p0;
31872
31873 /* End of SystemInitialize for SubSystem: '<S1048>/CAN_TYPE1_TX_M1_C1' */
31874
31875 /* SystemInitialize for Chart: '<S844>/Chart' */
31876 L4_MABX_DW.temporalCounter_i1_j = 0U;
31877 L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW = 0U;
31878 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
31879
31880 /* SystemInitialize for Enabled SubSystem: '<S568>/GNSSDOPs_011' */
31881 /* SystemInitialize for Outport: '<S569>/SID' */
31882 L4_MABX_B.SFunction1_o1_mz = L4_MABX_P.SID_Y0_n;
31883
31884 /* SystemInitialize for Outport: '<S569>/SetMode' */
31885 L4_MABX_B.SFunction1_o2_gm = L4_MABX_P.SetMode_Y0;
31886
31887 /* SystemInitialize for Outport: '<S569>/OpMode' */
31888 L4_MABX_B.SFunction1_o3_ht = L4_MABX_P.OpMode_Y0;
31889
31890 /* SystemInitialize for Outport: '<S569>/HDOP_' */
31891 L4_MABX_B.SFunction1_o4_lr = L4_MABX_P.HDOP_Y0;
31892
31893 /* SystemInitialize for Outport: '<S569>/VDOP' */
31894 L4_MABX_B.SFunction1_o5_o = L4_MABX_P.VDOP_Y0;
31895
31896 /* SystemInitialize for Outport: '<S569>/TDOP' */
31897 L4_MABX_B.SFunction1_o6_e = L4_MABX_P.TDOP_Y0;
31898
31899 /* SystemInitialize for Outport: '<S569>/RX status' */
31900 L4_MABX_B.SFunction1_o7_l = L4_MABX_P.RXstatus_Y0_do;
31901
31902 /* SystemInitialize for Outport: '<S569>/RX time' */
31903 L4_MABX_B.SFunction1_o8_k = L4_MABX_P.RXtime_Y0_ir;
31904
31905 /* SystemInitialize for Outport: '<S569>/RX delta time' */
31906 L4_MABX_B.SFunction1_o9_lf = L4_MABX_P.RXdeltatime_Y0_hy;
31907
31908 /* End of SystemInitialize for SubSystem: '<S568>/GNSSDOPs_011' */
31909
31910 /* SystemInitialize for Enabled SubSystem: '<S568>/GNSSDOPs_1' */
31911 /* SystemInitialize for Outport: '<S570>/SID' */
31912 L4_MABX_B.SFunction1_o1_h1 = L4_MABX_P.SID_Y0_a;
31913
31914 /* SystemInitialize for Outport: '<S570>/SetMode' */
31915 L4_MABX_B.SFunction1_o2_eu = L4_MABX_P.SetMode_Y0_k;
31916
31917 /* SystemInitialize for Outport: '<S570>/OpMode' */
31918 L4_MABX_B.SFunction1_o3_fe = L4_MABX_P.OpMode_Y0_a;
31919
31920 /* SystemInitialize for Outport: '<S570>/HDOP_' */
31921 L4_MABX_B.SFunction1_o4_mh = L4_MABX_P.HDOP_Y0_h;
31922
31923 /* SystemInitialize for Outport: '<S570>/VDOP' */
31924 L4_MABX_B.SFunction1_o5_n = L4_MABX_P.VDOP_Y0_c;
31925
31926 /* SystemInitialize for Outport: '<S570>/TDOP' */
31927 L4_MABX_B.SFunction1_o6_gg = L4_MABX_P.TDOP_Y0_l;
31928
31929 /* SystemInitialize for Outport: '<S570>/RX status' */
31930 L4_MABX_B.SFunction1_o7_m = L4_MABX_P.RXstatus_Y0_mp;
31931
31932 /* SystemInitialize for Outport: '<S570>/RX time' */
31933 L4_MABX_B.SFunction1_o8_ik = L4_MABX_P.RXtime_Y0_fz;
31934
31935 /* SystemInitialize for Outport: '<S570>/RX delta time' */
31936 L4_MABX_B.SFunction1_o9_hf = L4_MABX_P.RXdeltatime_Y0_i;
31937
31938 /* End of SystemInitialize for SubSystem: '<S568>/GNSSDOPs_1' */
31939
31940 /* SystemInitialize for Atomic SubSystem: '<S65>/Task_20ms' */
31941 /* InitializeConditions for UnitDelay: '<S389>/Unit Delay1' */
31942 L4_MABX_DW.UnitDelay1_DSTATE_n = L4_MABX_P.UnitDelay1_InitialCondition_p;
31943
31944 /* InitializeConditions for DiscreteIntegrator: '<S390>/LongitudnalPosition' */
31945 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_B.InitialPosition;
31946 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 2;
31947
31948 /* InitializeConditions for DiscreteIntegrator: '<S390>/VehHeading' */
31949 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_B.InitialHeading;
31950 L4_MABX_DW.VehHeading_PrevResetState = 2;
31951
31952 /* InitializeConditions for DiscreteIntegrator: '<S390>/XPosition' */
31953 L4_MABX_DW.XPosition_DSTATE = L4_MABX_B.InitialXPosition;
31954 L4_MABX_DW.XPosition_PrevResetState = 2;
31955
31956 /* InitializeConditions for DiscreteIntegrator: '<S390>/YPosition' */
31957 L4_MABX_DW.YPosition_DSTATE = L4_MABX_B.InitialYPosition;
31958 L4_MABX_DW.YPosition_PrevResetState = 2;
31959
31960 /* End of SystemInitialize for SubSystem: '<S65>/Task_20ms' */
31961
31962 /* SystemInitialize for S-Function (rti_commonblock): '<S403>/S-Function1' incorporates:
31963 * SubSystem: '<S393>/Background_Task'
31964 */
31965 L4_MAB_Background_Task_Init();
31966
31967 /* End of SystemInitialize for S-Function (rti_commonblock): '<S403>/S-Function1' */
31968
31969 /* SystemInitialize for S-Function (rti_commonblock): '<S409>/S-Function1' incorporates:
31970 * SubSystem: '<S393>/Interrupt_Task'
31971 */
31972 L4_MABX_Interrupt_Task_Init();
31973
31974 /* End of SystemInitialize for S-Function (rti_commonblock): '<S409>/S-Function1' */
31975
31976 /* SystemInitialize for Enabled SubSystem: '<S490>/AEBS1_A0' */
31977 /* SystemInitialize for Outport: '<S491>/AdvEmergencyBrkSysState' */
31978 L4_MABX_B.SFunction1_o1_io = L4_MABX_P.AdvEmergencyBrkSysState_Y0;
31979
31980 /* SystemInitialize for Outport: '<S491>/CollisionWarningLevel' */
31981 L4_MABX_B.SFunction1_o2_m1m = L4_MABX_P.CollisionWarningLevel_Y0;
31982
31983 /* SystemInitialize for Outport: '<S491>/RelObjctDetForAdvEmergBrakingSys' */
31984 L4_MABX_B.SFunction1_o3_gnd = L4_MABX_P.RelObjctDetForAdvEmergBrakingSy;
31985
31986 /* SystemInitialize for Outport: '<S491>/BendOffProbabOfRelevantObject' */
31987 L4_MABX_B.SFunction1_o4_di = L4_MABX_P.BendOffProbabOfRelevantObject_Y;
31988
31989 /* SystemInitialize for Outport: '<S491>/TimeToCollisionWithRelevantObj' */
31990 L4_MABX_B.SFunction1_o5_em = L4_MABX_P.TimeToCollisionWithRelevantObj_;
31991
31992 /* SystemInitialize for Outport: '<S491>/RX status' */
31993 L4_MABX_B.SFunction1_o6_em = L4_MABX_P.RXstatus_Y0_i;
31994
31995 /* SystemInitialize for Outport: '<S491>/RX time' */
31996 L4_MABX_B.SFunction1_o7_ie4 = L4_MABX_P.RXtime_Y0_k;
31997
31998 /* SystemInitialize for Outport: '<S491>/RX delta time' */
31999 L4_MABX_B.SFunction1_o8_bp = L4_MABX_P.RXdeltatime_Y0_c;
32000
32001 /* End of SystemInitialize for SubSystem: '<S490>/AEBS1_A0' */
32002
32003 /* SystemInitialize for Enabled SubSystem: '<S496>/B2' */
32004 /* SystemInitialize for Outport: '<S497>/BrakeAppPressDemanded' */
32005 L4_MABX_B.SFunction1_o1_a2 = L4_MABX_P.BrakeAppPressDemanded_Y0;
32006
32007 /* SystemInitialize for Outport: '<S497>/BrakeSwitch2' */
32008 L4_MABX_B.SFunction1_o2_nk = L4_MABX_P.BrakeSwitch2_Y0;
32009
32010 /* SystemInitialize for Outport: '<S497>/RX status' */
32011 L4_MABX_B.SFunction1_o3_ot = L4_MABX_P.RXstatus_Y0_ld;
32012
32013 /* SystemInitialize for Outport: '<S497>/RX time' */
32014 L4_MABX_B.SFunction1_o4_el = L4_MABX_P.RXtime_Y0_n;
32015
32016 /* SystemInitialize for Outport: '<S497>/RX delta time' */
32017 L4_MABX_B.SFunction1_o5_bc = L4_MABX_P.RXdeltatime_Y0_d;
32018
32019 /* End of SystemInitialize for SubSystem: '<S496>/B2' */
32020
32021 /* SystemInitialize for Enabled SubSystem: '<S498>/Tracks' */
32022 /* SystemInitialize for Outport: '<S499>/tr0_track_selection_status' */
32023 L4_MABX_B.SFunction1_o1_gr = L4_MABX_P.tr0_track_selection_status_Y0;
32024
32025 /* SystemInitialize for Outport: '<S499>/tr0_corrected_lateral_distance' */
32026 L4_MABX_B.SFunction1_o2_je = L4_MABX_P.tr0_corrected_lateral_distance_;
32027
32028 /* SystemInitialize for Outport: '<S499>/tr1_track_selection_status' */
32029 L4_MABX_B.SFunction1_o3_dd = L4_MABX_P.tr1_track_selection_status_Y0;
32030
32031 /* SystemInitialize for Outport: '<S499>/tr1_corrected_lateral_distance' */
32032 L4_MABX_B.SFunction1_o4_ew = L4_MABX_P.tr1_corrected_lateral_distance_;
32033
32034 /* SystemInitialize for Outport: '<S499>/tr2_track_selection_status' */
32035 L4_MABX_B.SFunction1_o5_ba = L4_MABX_P.tr2_track_selection_status_Y0;
32036
32037 /* SystemInitialize for Outport: '<S499>/tr2_corrected_lateral_distance' */
32038 L4_MABX_B.SFunction1_o6_di = L4_MABX_P.tr2_corrected_lateral_distance_;
32039
32040 /* SystemInitialize for Outport: '<S499>/tr3_track_selection_status' */
32041 L4_MABX_B.SFunction1_o7_k3 = L4_MABX_P.tr3_track_selection_status_Y0;
32042
32043 /* SystemInitialize for Outport: '<S499>/tr3_corrected_lateral_distance' */
32044 L4_MABX_B.SFunction1_o8_nl = L4_MABX_P.tr3_corrected_lateral_distance_;
32045
32046 /* SystemInitialize for Outport: '<S499>/tr4_track_selection_status' */
32047 L4_MABX_B.SFunction1_o9_ix = L4_MABX_P.tr4_track_selection_status_Y0;
32048
32049 /* SystemInitialize for Outport: '<S499>/tr4_corrected_lateral_distance' */
32050 L4_MABX_B.SFunction1_o10_g = L4_MABX_P.tr4_corrected_lateral_distance_;
32051
32052 /* SystemInitialize for Outport: '<S499>/tr5_track_selection_status' */
32053 L4_MABX_B.SFunction1_o11_jp = L4_MABX_P.tr5_track_selection_status_Y0;
32054
32055 /* SystemInitialize for Outport: '<S499>/tr5_corrected_lateral_distance' */
32056 L4_MABX_B.SFunction1_o12_f = L4_MABX_P.tr5_corrected_lateral_distance_;
32057
32058 /* SystemInitialize for Outport: '<S499>/tr6_track_selection_status' */
32059 L4_MABX_B.SFunction1_o13_ch = L4_MABX_P.tr6_track_selection_status_Y0;
32060
32061 /* SystemInitialize for Outport: '<S499>/tr6_corrected_lateral_distance' */
32062 L4_MABX_B.SFunction1_o14_c = L4_MABX_P.tr6_corrected_lateral_distance_;
32063
32064 /* SystemInitialize for Outport: '<S499>/tr7_track_selection_status' */
32065 L4_MABX_B.SFunction1_o15_k = L4_MABX_P.tr7_track_selection_status_Y0;
32066
32067 /* SystemInitialize for Outport: '<S499>/tr7_corrected_lateral_distance' */
32068 L4_MABX_B.SFunction1_o16_p = L4_MABX_P.tr7_corrected_lateral_distance_;
32069
32070 /* SystemInitialize for Outport: '<S499>/tr8_track_selection_status' */
32071 L4_MABX_B.SFunction1_o17_gz = L4_MABX_P.tr8_track_selection_status_Y0;
32072
32073 /* SystemInitialize for Outport: '<S499>/tr8_corrected_lateral_distance' */
32074 L4_MABX_B.SFunction1_o18_o = L4_MABX_P.tr8_corrected_lateral_distance_;
32075
32076 /* SystemInitialize for Outport: '<S499>/tr9_track_selection_status' */
32077 L4_MABX_B.SFunction1_o19_h = L4_MABX_P.tr9_track_selection_status_Y0;
32078
32079 /* SystemInitialize for Outport: '<S499>/tr9_corrected_lateral_distance' */
32080 L4_MABX_B.SFunction1_o20_cm = L4_MABX_P.tr9_corrected_lateral_distance_;
32081
32082 /* SystemInitialize for Outport: '<S499>/tr0_lateral_position' */
32083 L4_MABX_B.SFunction1_o21_mr = L4_MABX_P.tr0_lateral_position_Y0;
32084
32085 /* SystemInitialize for Outport: '<S499>/tr1_lateral_position' */
32086 L4_MABX_B.SFunction1_o22_lc = L4_MABX_P.tr1_lateral_position_Y0;
32087
32088 /* SystemInitialize for Outport: '<S499>/tr2_lateral_position' */
32089 L4_MABX_B.SFunction1_o23_b = L4_MABX_P.tr2_lateral_position_Y0;
32090
32091 /* SystemInitialize for Outport: '<S499>/tr3_lateral_position' */
32092 L4_MABX_B.SFunction1_o24_e = L4_MABX_P.tr3_lateral_position_Y0;
32093
32094 /* SystemInitialize for Outport: '<S499>/tr4_lateral_position' */
32095 L4_MABX_B.SFunction1_o25_g = L4_MABX_P.tr4_lateral_position_Y0;
32096
32097 /* SystemInitialize for Outport: '<S499>/tr5_lateral_position' */
32098 L4_MABX_B.SFunction1_o26_m = L4_MABX_P.tr5_lateral_position_Y0;
32099
32100 /* SystemInitialize for Outport: '<S499>/tr6_lateral_position' */
32101 L4_MABX_B.SFunction1_o27_c = L4_MABX_P.tr6_lateral_position_Y0;
32102
32103 /* SystemInitialize for Outport: '<S499>/tr7_lateral_position' */
32104 L4_MABX_B.SFunction1_o28_k = L4_MABX_P.tr7_lateral_position_Y0;
32105
32106 /* SystemInitialize for Outport: '<S499>/tr8_lateral_position' */
32107 L4_MABX_B.SFunction1_o29 = L4_MABX_P.tr8_lateral_position_Y0;
32108
32109 /* SystemInitialize for Outport: '<S499>/tr9_lateral_position' */
32110 L4_MABX_B.SFunction1_o30 = L4_MABX_P.tr9_lateral_position_Y0;
32111
32112 /* SystemInitialize for Outport: '<S499>/tr0_range' */
32113 L4_MABX_B.SFunction1_o31 = L4_MABX_P.tr0_range_Y0;
32114
32115 /* SystemInitialize for Outport: '<S499>/tr1_range' */
32116 L4_MABX_B.SFunction1_o32 = L4_MABX_P.tr1_range_Y0;
32117
32118 /* SystemInitialize for Outport: '<S499>/tr2_range' */
32119 L4_MABX_B.SFunction1_o33 = L4_MABX_P.tr2_range_Y0;
32120
32121 /* SystemInitialize for Outport: '<S499>/tr3_range' */
32122 L4_MABX_B.SFunction1_o34 = L4_MABX_P.tr3_range_Y0;
32123
32124 /* SystemInitialize for Outport: '<S499>/tr4_range' */
32125 L4_MABX_B.SFunction1_o35 = L4_MABX_P.tr4_range_Y0;
32126
32127 /* SystemInitialize for Outport: '<S499>/tr5_range' */
32128 L4_MABX_B.SFunction1_o36 = L4_MABX_P.tr5_range_Y0;
32129
32130 /* SystemInitialize for Outport: '<S499>/tr6_range' */
32131 L4_MABX_B.SFunction1_o37 = L4_MABX_P.tr6_range_Y0;
32132
32133 /* SystemInitialize for Outport: '<S499>/tr7_range' */
32134 L4_MABX_B.SFunction1_o38 = L4_MABX_P.tr7_range_Y0;
32135
32136 /* SystemInitialize for Outport: '<S499>/tr8_range' */
32137 L4_MABX_B.SFunction1_o39 = L4_MABX_P.tr8_range_Y0;
32138
32139 /* SystemInitialize for Outport: '<S499>/tr9_range' */
32140 L4_MABX_B.SFunction1_o40 = L4_MABX_P.tr9_range_Y0;
32141
32142 /* SystemInitialize for Outport: '<S499>/tr0_radar_confidence' */
32143 L4_MABX_B.SFunction1_o41 = L4_MABX_P.tr0_radar_confidence_Y0;
32144
32145 /* SystemInitialize for Outport: '<S499>/tr1_radar_confidence' */
32146 L4_MABX_B.SFunction1_o42 = L4_MABX_P.tr1_radar_confidence_Y0;
32147
32148 /* SystemInitialize for Outport: '<S499>/tr2_radar_confidence' */
32149 L4_MABX_B.SFunction1_o43 = L4_MABX_P.tr2_radar_confidence_Y0;
32150
32151 /* SystemInitialize for Outport: '<S499>/tr3_radar_confidence' */
32152 L4_MABX_B.SFunction1_o44 = L4_MABX_P.tr3_radar_confidence_Y0;
32153
32154 /* SystemInitialize for Outport: '<S499>/tr4_radar_confidence' */
32155 L4_MABX_B.SFunction1_o45 = L4_MABX_P.tr4_radar_confidence_Y0;
32156
32157 /* SystemInitialize for Outport: '<S499>/tr5_radar_confidence' */
32158 L4_MABX_B.SFunction1_o46 = L4_MABX_P.tr5_radar_confidence_Y0;
32159
32160 /* SystemInitialize for Outport: '<S499>/tr6_radar_confidence' */
32161 L4_MABX_B.SFunction1_o47 = L4_MABX_P.tr6_radar_confidence_Y0;
32162
32163 /* SystemInitialize for Outport: '<S499>/tr7_radar_confidence' */
32164 L4_MABX_B.SFunction1_o48 = L4_MABX_P.tr7_radar_confidence_Y0;
32165
32166 /* SystemInitialize for Outport: '<S499>/tr8_radar_confidence' */
32167 L4_MABX_B.SFunction1_o49 = L4_MABX_P.tr8_radar_confidence_Y0;
32168
32169 /* SystemInitialize for Outport: '<S499>/tr9_radar_confidence' */
32170 L4_MABX_B.SFunction1_o50 = L4_MABX_P.tr9_radar_confidence_Y0;
32171
32172 /* SystemInitialize for Outport: '<S499>/tr0_relative_velocitiy' */
32173 L4_MABX_B.SFunction1_o51 = L4_MABX_P.tr0_relative_velocitiy_Y0;
32174
32175 /* SystemInitialize for Outport: '<S499>/tr0_acceleration_over_ground' */
32176 L4_MABX_B.SFunction1_o52 = L4_MABX_P.tr0_acceleration_over_ground_Y0;
32177
32178 /* SystemInitialize for Outport: '<S499>/tr1_relative_velocitiy' */
32179 L4_MABX_B.SFunction1_o53 = L4_MABX_P.tr1_relative_velocitiy_Y0;
32180
32181 /* SystemInitialize for Outport: '<S499>/tr1_acceleration_over_ground' */
32182 L4_MABX_B.SFunction1_o54 = L4_MABX_P.tr1_acceleration_over_ground_Y0;
32183
32184 /* SystemInitialize for Outport: '<S499>/tr2_relative_velocitiy' */
32185 L4_MABX_B.SFunction1_o55 = L4_MABX_P.tr2_relative_velocitiy_Y0;
32186
32187 /* SystemInitialize for Outport: '<S499>/tr2_acceleration_over_ground' */
32188 L4_MABX_B.SFunction1_o56 = L4_MABX_P.tr2_acceleration_over_ground_Y0;
32189
32190 /* SystemInitialize for Outport: '<S499>/tr3_relative_velocitiy' */
32191 L4_MABX_B.SFunction1_o57 = L4_MABX_P.tr3_relative_velocitiy_Y0;
32192
32193 /* SystemInitialize for Outport: '<S499>/tr3_acceleration_over_ground' */
32194 L4_MABX_B.SFunction1_o58 = L4_MABX_P.tr3_acceleration_over_ground_Y0;
32195
32196 /* SystemInitialize for Outport: '<S499>/tr4_relative_velocitiy' */
32197 L4_MABX_B.SFunction1_o59 = L4_MABX_P.tr4_relative_velocitiy_Y0;
32198
32199 /* SystemInitialize for Outport: '<S499>/tr4_acceleration_over_ground' */
32200 L4_MABX_B.SFunction1_o60 = L4_MABX_P.tr4_acceleration_over_ground_Y0;
32201
32202 /* SystemInitialize for Outport: '<S499>/tr5_relative_velocitiy' */
32203 L4_MABX_B.SFunction1_o61 = L4_MABX_P.tr5_relative_velocitiy_Y0;
32204
32205 /* SystemInitialize for Outport: '<S499>/tr5_acceleration_over_ground' */
32206 L4_MABX_B.SFunction1_o62 = L4_MABX_P.tr5_acceleration_over_ground_Y0;
32207
32208 /* SystemInitialize for Outport: '<S499>/tr6_relative_velocitiy' */
32209 L4_MABX_B.SFunction1_o63 = L4_MABX_P.tr6_relative_velocitiy_Y0;
32210
32211 /* SystemInitialize for Outport: '<S499>/tr6_acceleration_over_ground' */
32212 L4_MABX_B.SFunction1_o64 = L4_MABX_P.tr6_acceleration_over_ground_Y0;
32213
32214 /* SystemInitialize for Outport: '<S499>/tr7_relative_velocitiy' */
32215 L4_MABX_B.SFunction1_o65 = L4_MABX_P.tr7_relative_velocitiy_Y0;
32216
32217 /* SystemInitialize for Outport: '<S499>/tr7_acceleration_over_ground' */
32218 L4_MABX_B.SFunction1_o66 = L4_MABX_P.tr7_acceleration_over_ground_Y0;
32219
32220 /* SystemInitialize for Outport: '<S499>/tr8_relative_velocitiy' */
32221 L4_MABX_B.SFunction1_o67 = L4_MABX_P.tr8_relative_velocitiy_Y0;
32222
32223 /* SystemInitialize for Outport: '<S499>/tr8_acceleration_over_ground' */
32224 L4_MABX_B.SFunction1_o68 = L4_MABX_P.tr8_acceleration_over_ground_Y0;
32225
32226 /* SystemInitialize for Outport: '<S499>/tr9_relative_velocitiy' */
32227 L4_MABX_B.SFunction1_o69 = L4_MABX_P.tr9_relative_velocitiy_Y0;
32228
32229 /* SystemInitialize for Outport: '<S499>/tr9_acceleration_over_ground' */
32230 L4_MABX_B.SFunction1_o70 = L4_MABX_P.tr9_acceleration_over_ground_Y0;
32231
32232 /* SystemInitialize for Outport: '<S499>/track_multiplexor' */
32233 L4_MABX_B.SFunction1_o71 = L4_MABX_P.track_multiplexor_Y0;
32234
32235 /* SystemInitialize for Outport: '<S499>/RX status' */
32236 L4_MABX_B.SFunction1_o72 = L4_MABX_P.RXstatus_Y0_o;
32237
32238 /* SystemInitialize for Outport: '<S499>/RX time' */
32239 L4_MABX_B.SFunction1_o73 = L4_MABX_P.RXtime_Y0_d;
32240
32241 /* SystemInitialize for Outport: '<S499>/RX delta time' */
32242 L4_MABX_B.SFunction1_o74 = L4_MABX_P.RXdeltatime_Y0_as;
32243
32244 /* End of SystemInitialize for SubSystem: '<S498>/Tracks' */
32245
32246 /* SystemInitialize for Enabled SubSystem: '<S509>/EBC1_0B' */
32247 /* SystemInitialize for Outport: '<S510>/ASREngCtrlActive' */
32248 L4_MABX_B.SFunction1_o1_kk = L4_MABX_P.ASREngCtrlActive_Y0;
32249
32250 /* SystemInitialize for Outport: '<S510>/ASRBrakeCtrlActive' */
32251 L4_MABX_B.SFunction1_o2_ev = L4_MABX_P.ASRBrakeCtrlActive_Y0;
32252
32253 /* SystemInitialize for Outport: '<S510>/AntiLockBrakingActive' */
32254 L4_MABX_B.SFunction1_o3_htk = L4_MABX_P.AntiLockBrakingActive_Y0;
32255
32256 /* SystemInitialize for Outport: '<S510>/EBSBrakeSwitch' */
32257 L4_MABX_B.SFunction1_o4_nw = L4_MABX_P.EBSBrakeSwitch_Y0;
32258
32259 /* SystemInitialize for Outport: '<S510>/BrakePedalPos' */
32260 L4_MABX_B.SFunction1_o5_pj = L4_MABX_P.BrakePedalPos_Y0;
32261
32262 /* SystemInitialize for Outport: '<S510>/ABSOffroadSwitch' */
32263 L4_MABX_B.SFunction1_o6_j4 = L4_MABX_P.ABSOffroadSwitch_Y0;
32264
32265 /* SystemInitialize for Outport: '<S510>/ASROffroadSwitch' */
32266 L4_MABX_B.SFunction1_o7_p0 = L4_MABX_P.ASROffroadSwitch_Y0;
32267
32268 /* SystemInitialize for Outport: '<S510>/ASRHillHolderSwitch' */
32269 L4_MABX_B.SFunction1_o8_jv = L4_MABX_P.ASRHillHolderSwitch_Y0;
32270
32271 /* SystemInitialize for Outport: '<S510>/TractionCtrlOverrideSwitch' */
32272 L4_MABX_B.SFunction1_o9_lq = L4_MABX_P.TractionCtrlOverrideSwitch_Y0;
32273
32274 /* SystemInitialize for Outport: '<S510>/AccelInterlockSwitch' */
32275 L4_MABX_B.SFunction1_o10_ar = L4_MABX_P.AccelInterlockSwitch_Y0;
32276
32277 /* SystemInitialize for Outport: '<S510>/EngDerateSwitch' */
32278 L4_MABX_B.SFunction1_o11_ic = L4_MABX_P.EngDerateSwitch_Y0;
32279
32280 /* SystemInitialize for Outport: '<S510>/EngAuxShutdownSwitch' */
32281 L4_MABX_B.SFunction1_o12_h = L4_MABX_P.EngAuxShutdownSwitch_Y0;
32282
32283 /* SystemInitialize for Outport: '<S510>/RemoteAccelEnableSwitch' */
32284 L4_MABX_B.SFunction1_o13_o = L4_MABX_P.RemoteAccelEnableSwitch_Y0;
32285
32286 /* SystemInitialize for Outport: '<S510>/EngRetarderSelection' */
32287 L4_MABX_B.SFunction1_o14_es = L4_MABX_P.EngRetarderSelection_Y0;
32288
32289 /* SystemInitialize for Outport: '<S510>/ABSFullyOperational' */
32290 L4_MABX_B.SFunction1_o15_f = L4_MABX_P.ABSFullyOperational_Y0;
32291
32292 /* SystemInitialize for Outport: '<S510>/EBSRedWarningSignal' */
32293 L4_MABX_B.SFunction1_o16_c = L4_MABX_P.EBSRedWarningSignal_Y0;
32294
32295 /* SystemInitialize for Outport: '<S510>/ABS_EBSAmberWarningSignal' */
32296 L4_MABX_B.SFunction1_o17_h = L4_MABX_P.ABS_EBSAmberWarningSignal_Y0;
32297
32298 /* SystemInitialize for Outport: '<S510>/ATC_ASRInformationSignal' */
32299 L4_MABX_B.SFunction1_o18_l = L4_MABX_P.ATC_ASRInformationSignal_Y0;
32300
32301 /* SystemInitialize for Outport: '<S510>/SrcAddrssOfCtrllngDvcFrBrkCntrl' */
32302 L4_MABX_B.SFunction1_o19_c = L4_MABX_P.SrcAddrssOfCtrllngDvcFrBrkCntrl;
32303
32304 /* SystemInitialize for Outport: '<S510>/HaltBrakeSwitch' */
32305 L4_MABX_B.SFunction1_o20_o = L4_MABX_P.HaltBrakeSwitch_Y0;
32306
32307 /* SystemInitialize for Outport: '<S510>/TrailerABSStatus' */
32308 L4_MABX_B.SFunction1_o21_g = L4_MABX_P.TrailerABSStatus_Y0;
32309
32310 /* SystemInitialize for Outport: '<S510>/TrctrMntdTrilerABSWarningSignal' */
32311 L4_MABX_B.SFunction1_o22_n = L4_MABX_P.TrctrMntdTrilerABSWarningSignal;
32312
32313 /* SystemInitialize for Outport: '<S510>/RX status' */
32314 L4_MABX_B.SFunction1_o23_j = L4_MABX_P.RXstatus_Y0_cf;
32315
32316 /* SystemInitialize for Outport: '<S510>/RX time' */
32317 L4_MABX_B.SFunction1_o24_b = L4_MABX_P.RXtime_Y0_nt;
32318
32319 /* SystemInitialize for Outport: '<S510>/RX delta time' */
32320 L4_MABX_B.SFunction1_o25_cl = L4_MABX_P.RXdeltatime_Y0_df;
32321
32322 /* End of SystemInitialize for SubSystem: '<S509>/EBC1_0B' */
32323
32324 /* SystemInitialize for Enabled SubSystem: '<S562>/EEC2_001' */
32325 /* SystemInitialize for Outport: '<S563>/SPN558_AccelPed1LowIdlSwitch' */
32326 L4_MABX_B.SFunction1_o1_n1 = L4_MABX_P.SPN558_AccelPed1LowIdlSwitch_Y0;
32327
32328 /* SystemInitialize for Outport: '<S563>/SPN559_AccelPedKickdownSw' */
32329 L4_MABX_B.SFunction1_o2_lq = L4_MABX_P.SPN559_AccelPedKickdownSw_Y0;
32330
32331 /* SystemInitialize for Outport: '<S563>/SPN1437_RoadSpeedLimitStatus' */
32332 L4_MABX_B.SFunction1_o3_is = L4_MABX_P.SPN1437_RoadSpeedLimitStatus_Y0;
32333
32334 /* SystemInitialize for Outport: '<S563>/SPN2970_AccelPed2LowIdlSwitch' */
32335 L4_MABX_B.SFunction1_o4_mo = L4_MABX_P.SPN2970_AccelPed2LowIdlSwitch_Y;
32336
32337 /* SystemInitialize for Outport: '<S563>/SPN91_AccelPedPos1' */
32338 L4_MABX_B.SFunction1_o5_nq = L4_MABX_P.SPN91_AccelPedPos1_Y0;
32339
32340 /* SystemInitialize for Outport: '<S563>/SPN92_EngPercLoadAtCurrSpd' */
32341 L4_MABX_B.SFunction1_o6_oma = L4_MABX_P.SPN92_EngPercLoadAtCurrSpd_Y0;
32342
32343 /* SystemInitialize for Outport: '<S563>/SPN974_RemAccelPedalPosition' */
32344 L4_MABX_B.SFunction1_o7_ll = L4_MABX_P.SPN974_RemAccelPedalPosition_Y0;
32345
32346 /* SystemInitialize for Outport: '<S563>/SPN29_AccelPedPos2' */
32347 L4_MABX_B.SFunction1_o8_hh = L4_MABX_P.SPN29_AccelPedPos2_Y0;
32348
32349 /* SystemInitialize for Outport: '<S563>/SPN2979_VehAccelRateLimStatus' */
32350 L4_MABX_B.SFunction1_o9_lu = L4_MABX_P.SPN2979_VehAccelRateLimStatus_Y;
32351
32352 /* SystemInitialize for Outport: '<S563>/SPN5021_MomEngMaxPwrEnFdbk' */
32353 L4_MABX_B.SFunction1_o10_h = L4_MABX_P.SPN5021_MomEngMaxPwrEnFdbk_Y0;
32354
32355 /* SystemInitialize for Outport: '<S563>/SPN5399_DPFThermMgmtActive' */
32356 L4_MABX_B.SFunction1_o11_i = L4_MABX_P.SPN5399_DPFThermMgmtActive_Y0;
32357
32358 /* SystemInitialize for Outport: '<S563>/SPN5400_SCRThermMgmtActive' */
32359 L4_MABX_B.SFunction1_o12_a = L4_MABX_P.SPN5400_SCRThermMgmtActive_Y0;
32360
32361 /* SystemInitialize for Outport: '<S563>/SPN3357_ActMaxAvailEngPercTrq' */
32362 L4_MABX_B.SFunction1_o13_c = L4_MABX_P.SPN3357_ActMaxAvailEngPercTrq_Y;
32363
32364 /* SystemInitialize for Outport: '<S563>/SPN5398_EstPumpingPercentTorque' */
32365 L4_MABX_B.SFunction1_o14_j = L4_MABX_P.SPN5398_EstPumpingPercentTorque;
32366
32367 /* SystemInitialize for Outport: '<S563>/RX status' */
32368 L4_MABX_B.SFunction1_o15_b = L4_MABX_P.RXstatus_Y0_n;
32369
32370 /* SystemInitialize for Outport: '<S563>/RX time' */
32371 L4_MABX_B.SFunction1_o16_b = L4_MABX_P.RXtime_Y0_e;
32372
32373 /* SystemInitialize for Outport: '<S563>/RX delta time' */
32374 L4_MABX_B.SFunction1_o17_g = L4_MABX_P.RXdeltatime_Y0_ad;
32375
32376 /* End of SystemInitialize for SubSystem: '<S562>/EEC2_001' */
32377
32378 /* SystemInitialize for Enabled SubSystem: '<S603>/CAN_TYPE1_RX_M1_C1' */
32379 /* SystemInitialize for Outport: '<S607>/EPBPCMInhibitStatusFeedback' */
32380 L4_MABX_B.SFunction1_o1_kt = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y0;
32381
32382 /* SystemInitialize for Outport: '<S607>/EPBPCMManualStatusFeedback' */
32383 L4_MABX_B.SFunction1_o2_k1 = L4_MABX_P.EPBPCMManualStatusFeedback_Y0;
32384
32385 /* SystemInitialize for Outport: '<S607>/RX status' */
32386 L4_MABX_B.SFunction1_o3_or = L4_MABX_P.RXstatus_Y0_gu;
32387
32388 /* SystemInitialize for Outport: '<S607>/RX time' */
32389 L4_MABX_B.SFunction1_o4_dd = L4_MABX_P.RXtime_Y0_m;
32390
32391 /* SystemInitialize for Outport: '<S607>/RX delta time' */
32392 L4_MABX_B.SFunction1_o5_lp = L4_MABX_P.RXdeltatime_Y0_ls;
32393
32394 /* End of SystemInitialize for SubSystem: '<S603>/CAN_TYPE1_RX_M1_C1' */
32395
32396 /* SystemInitialize for Enabled SubSystem: '<S604>/CAN_TYPE1_RX_M1_C2' */
32397 /* SystemInitialize for Outport: '<S608>/EPBPCMInhibitStatusFeedback' */
32398 L4_MABX_B.SFunction1_o1_cf = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y_n;
32399
32400 /* SystemInitialize for Outport: '<S608>/EPBPCMManualStatusFeedback' */
32401 L4_MABX_B.SFunction1_o2_f3 = L4_MABX_P.EPBPCMManualStatusFeedback_Y0_p;
32402
32403 /* SystemInitialize for Outport: '<S608>/RX status' */
32404 L4_MABX_B.SFunction1_o3_g1 = L4_MABX_P.RXstatus_Y0_j;
32405
32406 /* SystemInitialize for Outport: '<S608>/RX time' */
32407 L4_MABX_B.SFunction1_o4_ae = L4_MABX_P.RXtime_Y0_ht;
32408
32409 /* SystemInitialize for Outport: '<S608>/RX delta time' */
32410 L4_MABX_B.SFunction1_o5_e = L4_MABX_P.RXdeltatime_Y0_gz;
32411
32412 /* End of SystemInitialize for SubSystem: '<S604>/CAN_TYPE1_RX_M1_C2' */
32413
32414 /* SystemInitialize for Enabled SubSystem: '<S605>/CAN_TYPE1_RX_M2_C1' */
32415 /* SystemInitialize for Outport: '<S609>/EPBPCMInhibitStatusFeedback' */
32416 L4_MABX_B.SFunction1_o1_be = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y_a;
32417
32418 /* SystemInitialize for Outport: '<S609>/EPBPCMManualStatusFeedback' */
32419 L4_MABX_B.SFunction1_o2_gi = L4_MABX_P.EPBPCMManualStatusFeedback_Y_pg;
32420
32421 /* SystemInitialize for Outport: '<S609>/RX status' */
32422 L4_MABX_B.SFunction1_o3_c = L4_MABX_P.RXstatus_Y0_ka;
32423
32424 /* SystemInitialize for Outport: '<S609>/RX time' */
32425 L4_MABX_B.SFunction1_o4_dp = L4_MABX_P.RXtime_Y0_pr;
32426
32427 /* SystemInitialize for Outport: '<S609>/RX delta time' */
32428 L4_MABX_B.SFunction1_o5_ku = L4_MABX_P.RXdeltatime_Y0_hn;
32429
32430 /* End of SystemInitialize for SubSystem: '<S605>/CAN_TYPE1_RX_M2_C1' */
32431
32432 /* SystemInitialize for Enabled SubSystem: '<S616>/PX2_LaneEdgeLeft' */
32433 /* SystemInitialize for Outport: '<S617>/PX2_LaneEdgeLeftAngle' */
32434 L4_MABX_B.SFunction1_o1_cdy = L4_MABX_P.PX2_LaneEdgeLeftAngle_Y0;
32435
32436 /* SystemInitialize for Outport: '<S617>/PX2_LaneEdgeLeftNumPoints' */
32437 L4_MABX_B.SFunction1_o2_ma = L4_MABX_P.PX2_LaneEdgeLeftNumPoints_Y0;
32438
32439 /* SystemInitialize for Outport: '<S617>/PX2_LaneEdgeLeftPosition' */
32440 L4_MABX_B.SFunction1_o3_hr = L4_MABX_P.PX2_LaneEdgeLeftPosition_Y0;
32441
32442 /* SystemInitialize for Outport: '<S617>/RX status' */
32443 L4_MABX_B.SFunction1_o4_aw = L4_MABX_P.RXstatus_Y0_a;
32444
32445 /* SystemInitialize for Outport: '<S617>/RX time' */
32446 L4_MABX_B.SFunction1_o5_hs = L4_MABX_P.RXtime_Y0_lm;
32447
32448 /* SystemInitialize for Outport: '<S617>/RX delta time' */
32449 L4_MABX_B.SFunction1_o6_fp = L4_MABX_P.RXdeltatime_Y0_kr;
32450
32451 /* End of SystemInitialize for SubSystem: '<S616>/PX2_LaneEdgeLeft' */
32452
32453 /* SystemInitialize for Enabled SubSystem: '<S616>/PX2_LaneEdgeRight' */
32454 /* SystemInitialize for Outport: '<S618>/PX2_LaneEdgeRightAngle' */
32455 L4_MABX_B.SFunction1_o1_o = L4_MABX_P.PX2_LaneEdgeRightAngle_Y0;
32456
32457 /* SystemInitialize for Outport: '<S618>/PX2_LaneEdgeRightNumPoints' */
32458 L4_MABX_B.SFunction1_o2_f4 = L4_MABX_P.PX2_LaneEdgeRightNumPoints_Y0;
32459
32460 /* SystemInitialize for Outport: '<S618>/PX2_LaneEdgeRightPosition' */
32461 L4_MABX_B.SFunction1_o3_hx = L4_MABX_P.PX2_LaneEdgeRightPosition_Y0;
32462
32463 /* SystemInitialize for Outport: '<S618>/RX status' */
32464 L4_MABX_B.SFunction1_o4_oj = L4_MABX_P.RXstatus_Y0_p;
32465
32466 /* SystemInitialize for Outport: '<S618>/RX time' */
32467 L4_MABX_B.SFunction1_o5_a = L4_MABX_P.RXtime_Y0_ad;
32468
32469 /* SystemInitialize for Outport: '<S618>/RX delta time' */
32470 L4_MABX_B.SFunction1_o6_p = L4_MABX_P.RXdeltatime_Y0_ag;
32471
32472 /* End of SystemInitialize for SubSystem: '<S616>/PX2_LaneEdgeRight' */
32473
32474 /* SystemInitialize for Enabled SubSystem: '<S627>/PX2_MapLaneEgoLeft' */
32475 /* SystemInitialize for Outport: '<S628>/PX2_MapLaneNearPos' */
32476 L4_MABX_B.SFunction1_o1_fnx = L4_MABX_P.PX2_MapLaneNearPos_Y0;
32477
32478 /* SystemInitialize for Outport: '<S628>/PX2_MapLaneMidPos' */
32479 L4_MABX_B.SFunction1_o2_ld = L4_MABX_P.PX2_MapLaneMidPos_Y0;
32480
32481 /* SystemInitialize for Outport: '<S628>/PX2_MapLaneFarPos' */
32482 L4_MABX_B.SFunction1_o3_md = L4_MABX_P.PX2_MapLaneFarPos_Y0;
32483
32484 /* SystemInitialize for Outport: '<S628>/PX2_EgoLaneNearPosValid' */
32485 L4_MABX_B.SFunction1_o4_g = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0;
32486
32487 /* SystemInitialize for Outport: '<S628>/PX2_EgoLaneMidPosValid' */
32488 L4_MABX_B.SFunction1_o5_h = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0;
32489
32490 /* SystemInitialize for Outport: '<S628>/PX2_EgoLaneFarPosValid' */
32491 L4_MABX_B.SFunction1_o6_b = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0;
32492
32493 /* SystemInitialize for Outport: '<S628>/RX status' */
32494 L4_MABX_B.SFunction1_o7_im = L4_MABX_P.RXstatus_Y0_l1;
32495
32496 /* SystemInitialize for Outport: '<S628>/RX time' */
32497 L4_MABX_B.SFunction1_o8_b = L4_MABX_P.RXtime_Y0_g;
32498
32499 /* SystemInitialize for Outport: '<S628>/RX delta time' */
32500 L4_MABX_B.SFunction1_o9_am = L4_MABX_P.RXdeltatime_Y0_gm;
32501
32502 /* End of SystemInitialize for SubSystem: '<S627>/PX2_MapLaneEgoLeft' */
32503
32504 /* SystemInitialize for Enabled SubSystem: '<S629>/PX2_MapLaneEgoRight' */
32505 /* SystemInitialize for Outport: '<S630>/PX2_MapLaneNearPos' */
32506 L4_MABX_B.SFunction1_o1_mm = L4_MABX_P.PX2_MapLaneNearPos_Y0_m;
32507
32508 /* SystemInitialize for Outport: '<S630>/PX2_MapLaneMidPos' */
32509 L4_MABX_B.SFunction1_o2_dx = L4_MABX_P.PX2_MapLaneMidPos_Y0_j;
32510
32511 /* SystemInitialize for Outport: '<S630>/PX2_MapLaneFarPos' */
32512 L4_MABX_B.SFunction1_o3_dx = L4_MABX_P.PX2_MapLaneFarPos_Y0_a;
32513
32514 /* SystemInitialize for Outport: '<S630>/PX2_EgoLaneNearPosValid' */
32515 L4_MABX_B.SFunction1_o4_ns = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0_i;
32516
32517 /* SystemInitialize for Outport: '<S630>/PX2_EgoLaneMidPosValid' */
32518 L4_MABX_B.SFunction1_o5_b = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0_j;
32519
32520 /* SystemInitialize for Outport: '<S630>/PX2_EgoLaneFarPosValid' */
32521 L4_MABX_B.SFunction1_o6_om = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0_k;
32522
32523 /* SystemInitialize for Outport: '<S630>/RX status' */
32524 L4_MABX_B.SFunction1_o7_df = L4_MABX_P.RXstatus_Y0_k0;
32525
32526 /* SystemInitialize for Outport: '<S630>/RX time' */
32527 L4_MABX_B.SFunction1_o8_n = L4_MABX_P.RXtime_Y0_nb;
32528
32529 /* SystemInitialize for Outport: '<S630>/RX delta time' */
32530 L4_MABX_B.SFunction1_o9_b = L4_MABX_P.RXdeltatime_Y0_of;
32531
32532 /* End of SystemInitialize for SubSystem: '<S629>/PX2_MapLaneEgoRight' */
32533
32534 /* SystemInitialize for Enabled SubSystem: '<S631>/PX2_EgoLanePos' */
32535 /* SystemInitialize for Outport: '<S632>/PX2_EgoLaneNearPosErr' */
32536 L4_MABX_B.SFunction1_o1_gw = L4_MABX_P.PX2_EgoLaneNearPosErr_Y0;
32537
32538 /* SystemInitialize for Outport: '<S632>/PX2_EgoLaneMidPosErr' */
32539 L4_MABX_B.SFunction1_o2_ju = L4_MABX_P.PX2_EgoLaneMidPosErr_Y0;
32540
32541 /* SystemInitialize for Outport: '<S632>/PX2_EgoLaneFarPosErr' */
32542 L4_MABX_B.SFunction1_o3_gn3 = L4_MABX_P.PX2_EgoLaneFarPosErr_Y0;
32543
32544 /* SystemInitialize for Outport: '<S632>/PX2_EgoLaneNearPosValid' */
32545 L4_MABX_B.SFunction1_o4_h0 = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0_m;
32546
32547 /* SystemInitialize for Outport: '<S632>/PX2_EgoLaneMidPosValid' */
32548 L4_MABX_B.SFunction1_o5_c = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0_g;
32549
32550 /* SystemInitialize for Outport: '<S632>/PX2_EgoLaneFarPosValid' */
32551 L4_MABX_B.SFunction1_o6_j = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0_ki;
32552
32553 /* SystemInitialize for Outport: '<S632>/RX status' */
32554 L4_MABX_B.SFunction1_o7_n = L4_MABX_P.RXstatus_Y0_cfn;
32555
32556 /* SystemInitialize for Outport: '<S632>/RX time' */
32557 L4_MABX_B.SFunction1_o8_e = L4_MABX_P.RXtime_Y0_hq;
32558
32559 /* SystemInitialize for Outport: '<S632>/RX delta time' */
32560 L4_MABX_B.SFunction1_o9_a = L4_MABX_P.RXdeltatime_Y0_el;
32561
32562 /* End of SystemInitialize for SubSystem: '<S631>/PX2_EgoLanePos' */
32563
32564 /* SystemInitialize for Enabled SubSystem: '<S641>/VEP1' */
32565 /* SystemInitialize for Outport: '<S642>/NetBatteryCurrent' */
32566 L4_MABX_B.SFunction1_o1_dm = L4_MABX_P.NetBatteryCurrent_Y0;
32567
32568 /* SystemInitialize for Outport: '<S642>/AltCurrent' */
32569 L4_MABX_B.SFunction1_o2_m1 = L4_MABX_P.AltCurrent_Y0;
32570
32571 /* SystemInitialize for Outport: '<S642>/ChargingSystemPotential' */
32572 L4_MABX_B.SFunction1_o3_az = L4_MABX_P.ChargingSystemPotential_Y0;
32573
32574 /* SystemInitialize for Outport: '<S642>/BatteryPotential_PowerInput1' */
32575 L4_MABX_B.SFunction1_o4_la = L4_MABX_P.BatteryPotential_PowerInput1_Y0;
32576
32577 /* SystemInitialize for Outport: '<S642>/KeyswitchBatteryPotential' */
32578 L4_MABX_B.SFunction1_o5 = L4_MABX_P.KeyswitchBatteryPotential_Y0;
32579
32580 /* SystemInitialize for Outport: '<S642>/RX status' */
32581 L4_MABX_B.SFunction1_o6 = L4_MABX_P.RXstatus_Y0_ai;
32582
32583 /* SystemInitialize for Outport: '<S642>/RX time' */
32584 L4_MABX_B.SFunction1_o7 = L4_MABX_P.RXtime_Y0_e2;
32585
32586 /* SystemInitialize for Outport: '<S642>/RX delta time' */
32587 L4_MABX_B.SFunction1_o8 = L4_MABX_P.RXdeltatime_Y0_es;
32588
32589 /* End of SystemInitialize for SubSystem: '<S641>/VEP1' */
32590
32591 /* SystemInitialize for Enabled SubSystem: '<S464>/Decode_TPCM_CTS' */
32592 /* SystemInitialize for Outport: '<S683>/Out' */
32593 L4_MABX_B.SPN2556_ControlByte_c = (uint8_T)L4_MABX_P.Out_Y0_i;
32594 L4_MABX_B.SPN2561_NumberOfPacketsThatCanB = (uint8_T)L4_MABX_P.Out_Y0_i;
32595 L4_MABX_B.SPN2562_NextPacketNumberToBeSen = (uint8_T)L4_MABX_P.Out_Y0_i;
32596 L4_MABX_B.DataType_iw = (uint32_T)L4_MABX_P.Out_Y0_i;
32597
32598 /* End of SystemInitialize for SubSystem: '<S464>/Decode_TPCM_CTS' */
32599
32600 /* SystemInitialize for Enabled SubSystem: '<S464>/Decode_TPCM_ConnectionAbort' */
32601 /* SystemInitialize for Outport: '<S684>/Out' */
32602 L4_MABX_B.SPN2556_ControlByte_da = (uint8_T)L4_MABX_P.Out_Y0_c;
32603 L4_MABX_B.SPN2570_ConnectionAbortReason = (uint8_T)L4_MABX_P.Out_Y0_c;
32604 L4_MABX_B.DataType_i0 = (uint32_T)L4_MABX_P.Out_Y0_c;
32605
32606 /* End of SystemInitialize for SubSystem: '<S464>/Decode_TPCM_ConnectionAbort' */
32607
32608 /* SystemInitialize for Enabled SubSystem: '<S464>/Decode_TPCM_EndOfMessageAck' */
32609 /* SystemInitialize for Outport: '<S685>/Out' */
32610 L4_MABX_B.SPN2556_ControlByte_d = (uint8_T)L4_MABX_P.Out_Y0_n;
32611 L4_MABX_B.DataType_mm = (uint16_T)L4_MABX_P.Out_Y0_n;
32612 L4_MABX_B.SPN2565_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_n;
32613 L4_MABX_B.DataType_nq = (uint32_T)L4_MABX_P.Out_Y0_n;
32614
32615 /* End of SystemInitialize for SubSystem: '<S464>/Decode_TPCM_EndOfMessageAck' */
32616
32617 /* SystemInitialize for Enabled SubSystem: '<S464>/Decode_TPCM_RTS' */
32618 /* SystemInitialize for Outport: '<S686>/Out' */
32619 L4_MABX_B.SPN2556_ControlByte = (uint8_T)L4_MABX_P.Out_Y0_cv;
32620 L4_MABX_B.DataType_lo = (uint16_T)L4_MABX_P.Out_Y0_cv;
32621 L4_MABX_B.SPN2558_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_cv;
32622 L4_MABX_B.SPN2559_MaximumNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_cv;
32623 L4_MABX_B.DataType_akh = (uint32_T)L4_MABX_P.Out_Y0_cv;
32624
32625 /* End of SystemInitialize for SubSystem: '<S464>/Decode_TPCM_RTS' */
32626
32627 /* SystemInitialize for Enabled SubSystem: '<S577>/CAN_TYPE1_RX_M1_C1' */
32628 /* SystemInitialize for Outport: '<S581>/byte1' */
32629 L4_MABX_B.SFunction1_o1_ff = L4_MABX_P.byte1_Y0_e;
32630
32631 /* SystemInitialize for Outport: '<S581>/byte2' */
32632 L4_MABX_B.SFunction1_o2_hs = L4_MABX_P.byte2_Y0_m;
32633
32634 /* SystemInitialize for Outport: '<S581>/byte3' */
32635 L4_MABX_B.SFunction1_o3_iu = L4_MABX_P.byte3_Y0_j;
32636
32637 /* SystemInitialize for Outport: '<S581>/byte4' */
32638 L4_MABX_B.SFunction1_o4_hk = L4_MABX_P.byte4_Y0_h;
32639
32640 /* SystemInitialize for Outport: '<S581>/byte5' */
32641 L4_MABX_B.SFunction1_o5_dj = L4_MABX_P.byte5_Y0_o;
32642
32643 /* SystemInitialize for Outport: '<S581>/byte6' */
32644 L4_MABX_B.SFunction1_o6_a = L4_MABX_P.byte6_Y0_f;
32645
32646 /* SystemInitialize for Outport: '<S581>/byte7' */
32647 L4_MABX_B.SFunction1_o7_hj = L4_MABX_P.byte7_Y0_d;
32648
32649 /* SystemInitialize for Outport: '<S581>/byte8' */
32650 L4_MABX_B.SFunction1_o8_f = L4_MABX_P.byte8_Y0_h;
32651
32652 /* SystemInitialize for Outport: '<S581>/RX status' */
32653 L4_MABX_B.SFunction1_o9_bp = L4_MABX_P.RXstatus_Y0_mk;
32654
32655 /* SystemInitialize for Outport: '<S581>/RX time' */
32656 L4_MABX_B.SFunction1_o10_dd = L4_MABX_P.RXtime_Y0_ep;
32657
32658 /* SystemInitialize for Outport: '<S581>/RX delta time' */
32659 L4_MABX_B.SFunction1_o11_gh = L4_MABX_P.RXdeltatime_Y0_ed;
32660
32661 /* End of SystemInitialize for SubSystem: '<S577>/CAN_TYPE1_RX_M1_C1' */
32662
32663 /* SystemInitialize for Enabled SubSystem: '<S578>/CAN_TYPE1_RX_M1_C2' */
32664 /* SystemInitialize for Outport: '<S582>/byte1' */
32665 L4_MABX_B.SFunction1_o1_df = L4_MABX_P.byte1_Y0_m;
32666
32667 /* SystemInitialize for Outport: '<S582>/byte2' */
32668 L4_MABX_B.SFunction1_o2_bg = L4_MABX_P.byte2_Y0_h;
32669
32670 /* SystemInitialize for Outport: '<S582>/byte3' */
32671 L4_MABX_B.SFunction1_o3_py = L4_MABX_P.byte3_Y0_m;
32672
32673 /* SystemInitialize for Outport: '<S582>/byte4' */
32674 L4_MABX_B.SFunction1_o4_hw = L4_MABX_P.byte4_Y0_pq;
32675
32676 /* SystemInitialize for Outport: '<S582>/byte5' */
32677 L4_MABX_B.SFunction1_o5_bl = L4_MABX_P.byte5_Y0_m;
32678
32679 /* SystemInitialize for Outport: '<S582>/byte6' */
32680 L4_MABX_B.SFunction1_o6_fv = L4_MABX_P.byte6_Y0_hl;
32681
32682 /* SystemInitialize for Outport: '<S582>/byte7' */
32683 L4_MABX_B.SFunction1_o7_hr = L4_MABX_P.byte7_Y0_c;
32684
32685 /* SystemInitialize for Outport: '<S582>/byte8' */
32686 L4_MABX_B.SFunction1_o8_ll = L4_MABX_P.byte8_Y0_c;
32687
32688 /* SystemInitialize for Outport: '<S582>/RX status' */
32689 L4_MABX_B.SFunction1_o9_bh = L4_MABX_P.RXstatus_Y0_lk;
32690
32691 /* SystemInitialize for Outport: '<S582>/RX time' */
32692 L4_MABX_B.SFunction1_o10_j = L4_MABX_P.RXtime_Y0_jp;
32693
32694 /* SystemInitialize for Outport: '<S582>/RX delta time' */
32695 L4_MABX_B.SFunction1_o11_n = L4_MABX_P.RXdeltatime_Y0_co;
32696
32697 /* End of SystemInitialize for SubSystem: '<S578>/CAN_TYPE1_RX_M1_C2' */
32698
32699 /* SystemInitialize for Enabled SubSystem: '<S579>/CAN_TYPE1_RX_M3_C2' */
32700 /* SystemInitialize for Outport: '<S583>/byte1' */
32701 L4_MABX_B.SFunction1_o1_dh = L4_MABX_P.byte1_Y0_n;
32702
32703 /* SystemInitialize for Outport: '<S583>/byte2' */
32704 L4_MABX_B.SFunction1_o2_cj = L4_MABX_P.byte2_Y0_p;
32705
32706 /* SystemInitialize for Outport: '<S583>/byte3' */
32707 L4_MABX_B.SFunction1_o3_mk = L4_MABX_P.byte3_Y0_b;
32708
32709 /* SystemInitialize for Outport: '<S583>/byte4' */
32710 L4_MABX_B.SFunction1_o4_gj = L4_MABX_P.byte4_Y0_m;
32711
32712 /* SystemInitialize for Outport: '<S583>/byte5' */
32713 L4_MABX_B.SFunction1_o5_ha = L4_MABX_P.byte5_Y0_c;
32714
32715 /* SystemInitialize for Outport: '<S583>/byte6' */
32716 L4_MABX_B.SFunction1_o6_h = L4_MABX_P.byte6_Y0_k;
32717
32718 /* SystemInitialize for Outport: '<S583>/byte7' */
32719 L4_MABX_B.SFunction1_o7_pc = L4_MABX_P.byte7_Y0_f;
32720
32721 /* SystemInitialize for Outport: '<S583>/byte8' */
32722 L4_MABX_B.SFunction1_o8_j = L4_MABX_P.byte8_Y0_ja;
32723
32724 /* SystemInitialize for Outport: '<S583>/RX status' */
32725 L4_MABX_B.SFunction1_o9_hy = L4_MABX_P.RXstatus_Y0_mo;
32726
32727 /* SystemInitialize for Outport: '<S583>/RX time' */
32728 L4_MABX_B.SFunction1_o10_n = L4_MABX_P.RXtime_Y0_ne;
32729
32730 /* SystemInitialize for Outport: '<S583>/RX delta time' */
32731 L4_MABX_B.SFunction1_o11_a = L4_MABX_P.RXdeltatime_Y0_l;
32732
32733 /* End of SystemInitialize for SubSystem: '<S579>/CAN_TYPE1_RX_M3_C2' */
32734
32735 /* SystemInitialize for Enabled SubSystem: '<S590>/CAN_TYPE1_RX_M1_C1' */
32736 /* SystemInitialize for Outport: '<S594>/byte1' */
32737 L4_MABX_B.SFunction1_o1_b3 = L4_MABX_P.byte1_Y0_n5;
32738
32739 /* SystemInitialize for Outport: '<S594>/byte2' */
32740 L4_MABX_B.SFunction1_o2_k3 = L4_MABX_P.byte2_Y0_dr;
32741
32742 /* SystemInitialize for Outport: '<S594>/byte3' */
32743 L4_MABX_B.SFunction1_o3_ez = L4_MABX_P.byte3_Y0_mi;
32744
32745 /* SystemInitialize for Outport: '<S594>/byte4' */
32746 L4_MABX_B.SFunction1_o4_l5 = L4_MABX_P.byte4_Y0_b;
32747
32748 /* SystemInitialize for Outport: '<S594>/byte5' */
32749 L4_MABX_B.SFunction1_o5_id = L4_MABX_P.byte5_Y0_na;
32750
32751 /* SystemInitialize for Outport: '<S594>/byte6' */
32752 L4_MABX_B.SFunction1_o6_fb0 = L4_MABX_P.byte6_Y0_j;
32753
32754 /* SystemInitialize for Outport: '<S594>/byte7' */
32755 L4_MABX_B.SFunction1_o7_p = L4_MABX_P.byte7_Y0_j;
32756
32757 /* SystemInitialize for Outport: '<S594>/byte8' */
32758 L4_MABX_B.SFunction1_o8_hk = L4_MABX_P.byte8_Y0_e;
32759
32760 /* SystemInitialize for Outport: '<S594>/RX status' */
32761 L4_MABX_B.SFunction1_o9_n = L4_MABX_P.RXstatus_Y0_ng;
32762
32763 /* SystemInitialize for Outport: '<S594>/RX time' */
32764 L4_MABX_B.SFunction1_o10_c = L4_MABX_P.RXtime_Y0_js;
32765
32766 /* SystemInitialize for Outport: '<S594>/RX delta time' */
32767 L4_MABX_B.SFunction1_o11_e = L4_MABX_P.RXdeltatime_Y0_o;
32768
32769 /* End of SystemInitialize for SubSystem: '<S590>/CAN_TYPE1_RX_M1_C1' */
32770
32771 /* SystemInitialize for Enabled SubSystem: '<S591>/CAN_TYPE1_RX_M1_C2' */
32772 /* SystemInitialize for Outport: '<S595>/byte1' */
32773 L4_MABX_B.SFunction1_o1_l = L4_MABX_P.byte1_Y0_k;
32774
32775 /* SystemInitialize for Outport: '<S595>/byte2' */
32776 L4_MABX_B.SFunction1_o2_hp = L4_MABX_P.byte2_Y0_e;
32777
32778 /* SystemInitialize for Outport: '<S595>/byte3' */
32779 L4_MABX_B.SFunction1_o3_lr = L4_MABX_P.byte3_Y0_p;
32780
32781 /* SystemInitialize for Outport: '<S595>/byte4' */
32782 L4_MABX_B.SFunction1_o4_ho = L4_MABX_P.byte4_Y0_l;
32783
32784 /* SystemInitialize for Outport: '<S595>/byte5' */
32785 L4_MABX_B.SFunction1_o5_d = L4_MABX_P.byte5_Y0_h;
32786
32787 /* SystemInitialize for Outport: '<S595>/byte6' */
32788 L4_MABX_B.SFunction1_o6_m = L4_MABX_P.byte6_Y0_e;
32789
32790 /* SystemInitialize for Outport: '<S595>/byte7' */
32791 L4_MABX_B.SFunction1_o7_a = L4_MABX_P.byte7_Y0_h;
32792
32793 /* SystemInitialize for Outport: '<S595>/byte8' */
32794 L4_MABX_B.SFunction1_o8_hy = L4_MABX_P.byte8_Y0_n;
32795
32796 /* SystemInitialize for Outport: '<S595>/RX status' */
32797 L4_MABX_B.SFunction1_o9_j = L4_MABX_P.RXstatus_Y0_gm;
32798
32799 /* SystemInitialize for Outport: '<S595>/RX time' */
32800 L4_MABX_B.SFunction1_o10_p = L4_MABX_P.RXtime_Y0_fg;
32801
32802 /* SystemInitialize for Outport: '<S595>/RX delta time' */
32803 L4_MABX_B.SFunction1_o11_d = L4_MABX_P.RXdeltatime_Y0_cp;
32804
32805 /* End of SystemInitialize for SubSystem: '<S591>/CAN_TYPE1_RX_M1_C2' */
32806
32807 /* SystemInitialize for Enabled SubSystem: '<S592>/CAN_TYPE1_RX_M3_C2' */
32808 /* SystemInitialize for Outport: '<S596>/byte1' */
32809 L4_MABX_B.SFunction1_o1_kc = L4_MABX_P.byte1_Y0_o;
32810
32811 /* SystemInitialize for Outport: '<S596>/byte2' */
32812 L4_MABX_B.SFunction1_o2_kr = L4_MABX_P.byte2_Y0_l;
32813
32814 /* SystemInitialize for Outport: '<S596>/byte3' */
32815 L4_MABX_B.SFunction1_o3_ef = L4_MABX_P.byte3_Y0_h;
32816
32817 /* SystemInitialize for Outport: '<S596>/byte4' */
32818 L4_MABX_B.SFunction1_o4_b = L4_MABX_P.byte4_Y0_hf;
32819
32820 /* SystemInitialize for Outport: '<S596>/byte5' */
32821 L4_MABX_B.SFunction1_o5_ls = L4_MABX_P.byte5_Y0_o2;
32822
32823 /* SystemInitialize for Outport: '<S596>/byte6' */
32824 L4_MABX_B.SFunction1_o6_g = L4_MABX_P.byte6_Y0_m;
32825
32826 /* SystemInitialize for Outport: '<S596>/byte7' */
32827 L4_MABX_B.SFunction1_o7_nv = L4_MABX_P.byte7_Y0_h2;
32828
32829 /* SystemInitialize for Outport: '<S596>/byte8' */
32830 L4_MABX_B.SFunction1_o8_h = L4_MABX_P.byte8_Y0_l;
32831
32832 /* SystemInitialize for Outport: '<S596>/RX status' */
32833 L4_MABX_B.SFunction1_o9_f = L4_MABX_P.RXstatus_Y0_hr;
32834
32835 /* SystemInitialize for Outport: '<S596>/RX time' */
32836 L4_MABX_B.SFunction1_o10_m = L4_MABX_P.RXtime_Y0_n0;
32837
32838 /* SystemInitialize for Outport: '<S596>/RX delta time' */
32839 L4_MABX_B.SFunction1_o11_f = L4_MABX_P.RXdeltatime_Y0_lo;
32840
32841 /* End of SystemInitialize for SubSystem: '<S592>/CAN_TYPE1_RX_M3_C2' */
32842
32843 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
32844 /* InitializeConditions for UnitDelay: '<S30>/Unit_Delay' */
32845 L4_MABX_DW.Unit_Delay_DSTATE_f1 = L4_MABX_P.Unit_Delay_InitialCondition_e3;
32846
32847 /* InitializeConditions for UnitDelay: '<S31>/Unit Delay' */
32848 L4_MABX_DW.UnitDelay_DSTATE_j1 = L4_MABX_P.UnitDelay_InitialCondition_n;
32849
32850 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
32851
32852 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
32853 /* InitializeConditions for UnitDelay: '<S54>/Unit_Delay' */
32854 L4_MABX_DW.Unit_Delay_DSTATE_i5 = L4_MABX_P.Unit_Delay_InitialCondition_o;
32855
32856 /* InitializeConditions for UnitDelay: '<S55>/Unit Delay' */
32857 L4_MABX_DW.UnitDelay_DSTATE_p = L4_MABX_P.UnitDelay_InitialCondition_p;
32858
32859 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
32860
32861 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
32862 /* InitializeConditions for UnitDelay: '<S60>/Unit_Delay' */
32863 L4_MABX_DW.Unit_Delay_DSTATE_l5 = L4_MABX_P.Unit_Delay_InitialCondition_le;
32864
32865 /* InitializeConditions for UnitDelay: '<S61>/Unit Delay' */
32866 L4_MABX_DW.UnitDelay_DSTATE_dr = L4_MABX_P.UnitDelay_InitialCondition_i;
32867
32868 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
32869
32870 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
32871 /* InitializeConditions for UnitDelay: '<S42>/Unit_Delay' */
32872 L4_MABX_DW.Unit_Delay_DSTATE_h41 = L4_MABX_P.Unit_Delay_InitialCondition_mw;
32873
32874 /* InitializeConditions for UnitDelay: '<S43>/Unit Delay' */
32875 L4_MABX_DW.UnitDelay_DSTATE_dr4 = L4_MABX_P.UnitDelay_InitialCondition_hk;
32876
32877 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
32878
32879 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
32880 /* InitializeConditions for UnitDelay: '<S48>/Unit_Delay' */
32881 L4_MABX_DW.Unit_Delay_DSTATE_mq = L4_MABX_P.Unit_Delay_InitialCondition_bo;
32882
32883 /* InitializeConditions for UnitDelay: '<S49>/Unit Delay' */
32884 L4_MABX_DW.UnitDelay_DSTATE_h = L4_MABX_P.UnitDelay_InitialCondition_l;
32885
32886 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
32887
32888 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
32889 /* InitializeConditions for UnitDelay: '<S36>/Unit_Delay' */
32890 L4_MABX_DW.Unit_Delay_DSTATE_je = L4_MABX_P.Unit_Delay_InitialCondition_in;
32891
32892 /* InitializeConditions for UnitDelay: '<S37>/Unit Delay' */
32893 L4_MABX_DW.UnitDelay_DSTATE_b = L4_MABX_P.UnitDelay_InitialCondition_m;
32894
32895 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
32896 }
32897}
32898
32899/* Model terminate function */
32900void L4_MABX_terminate(void)
32901{
32902 /* Terminate for Atomic SubSystem: '<S834>/CAN_TX_1000ms' */
32903
32904 /* Terminate for Enabled SubSystem: '<S854>/AIR1' */
32905
32906 /* Terminate for S-Function (rti_commonblock): '<S855>/S-Function1' */
32907
32908 /* dSPACE RTICAN TX Message Block: "AIR1" Id:419343921 */
32909 {
32910 /* ... Set the message into sleep mode */
32911 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
32912 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31])) ==
32913 DSMCOM_BUFFER_OVERFLOW) ;
32914 }
32915
32916 /* End of Terminate for SubSystem: '<S854>/AIR1' */
32917
32918 /* Terminate for Enabled SubSystem: '<S862>/AMB' */
32919
32920 /* Terminate for S-Function (rti_commonblock): '<S863>/S-Function1' */
32921
32922 /* dSPACE RTICAN TX Message Block: "AMB" Id:419362048 */
32923 {
32924 /* ... Set the message into sleep mode */
32925 while ((rtican_type1_tq_error[1][4] = can_tp1_msg_sleep
32926 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500])) ==
32927 DSMCOM_BUFFER_OVERFLOW) ;
32928 }
32929
32930 /* End of Terminate for SubSystem: '<S862>/AMB' */
32931
32932 /* End of Terminate for SubSystem: '<S834>/CAN_TX_1000ms' */
32933
32934 /* Terminate for S-Function (dsa_tcpip_setup_sfcn): '<S393>/dsa_tcpip_setup' */
32935 /* Level2 S-Function Block: '<S393>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
32936 {
32937 SimStruct *rts = L4_MABX_M->childSfunctions[3];
32938 sfcnTerminate(rts);
32939 }
32940
32941 /* Terminate for S-Function (dsa_tcpip_udp_sfcn): '<S394>/TCPIP_Com' */
32942 /* Level2 S-Function Block: '<S394>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
32943 {
32944 SimStruct *rts = L4_MABX_M->childSfunctions[4];
32945 sfcnTerminate(rts);
32946 }
32947
32948 /* Terminate for Atomic SubSystem: '<S834>/CAN_TX_100ms' */
32949
32950 /* Terminate for Enabled SubSystem: '<S893>/PropB_XPR_FC' */
32951
32952 /* Terminate for S-Function (rti_commonblock): '<S895>/S-Function1' */
32953
32954 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
32955 {
32956 /* ... Set the message into sleep mode */
32957 while ((rtican_type1_tq_error[0][4] = can_tp1_msg_sleep
32958 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC])) ==
32959 DSMCOM_BUFFER_OVERFLOW) ;
32960 }
32961
32962 /* End of Terminate for SubSystem: '<S893>/PropB_XPR_FC' */
32963
32964 /* Terminate for Enabled SubSystem: '<S894>/PropB_XPR_FC' */
32965
32966 /* Terminate for S-Function (rti_commonblock): '<S896>/S-Function1' */
32967
32968 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
32969 {
32970 /* ... Set the message into sleep mode */
32971 while ((rtican_type1_tq_error[1][4] = can_tp1_msg_sleep
32972 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC])) ==
32973 DSMCOM_BUFFER_OVERFLOW) ;
32974 }
32975
32976 /* End of Terminate for SubSystem: '<S894>/PropB_XPR_FC' */
32977
32978 /* Terminate for Enabled SubSystem: '<S923>/Std_PosRapidUpdate_01' */
32979
32980 /* Terminate for S-Function (rti_commonblock): '<S924>/S-Function1' */
32981
32982 /* dSPACE RTICAN TX Message Block: "Std_PosRapidUpdate_01" Id:3 */
32983 {
32984 /* ... Set the message into sleep mode */
32985 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32986 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3])) ==
32987 DSMCOM_BUFFER_OVERFLOW) ;
32988 }
32989
32990 /* End of Terminate for SubSystem: '<S923>/Std_PosRapidUpdate_01' */
32991
32992 /* Terminate for Enabled SubSystem: '<S873>/CCVS1_00' */
32993
32994 /* Terminate for S-Function (rti_commonblock): '<S875>/S-Function1' */
32995
32996 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:419361024 */
32997 {
32998 /* ... Set the message into sleep mode */
32999 while ((rtican_type1_tq_error[0][3] = can_tp1_msg_sleep
33000 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100])) ==
33001 DSMCOM_BUFFER_OVERFLOW) ;
33002 }
33003
33004 /* End of Terminate for SubSystem: '<S873>/CCVS1_00' */
33005
33006 /* Terminate for Enabled SubSystem: '<S874>/CCVS1_00' */
33007
33008 /* Terminate for S-Function (rti_commonblock): '<S876>/S-Function1' */
33009
33010 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:218034432 */
33011 {
33012 /* ... Set the message into sleep mode */
33013 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
33014 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100])) ==
33015 DSMCOM_BUFFER_OVERFLOW) ;
33016 }
33017
33018 /* End of Terminate for SubSystem: '<S874>/CCVS1_00' */
33019
33020 /* Terminate for Enabled SubSystem: '<S877>/PropB_REAX_5_E4' */
33021
33022 /* Terminate for S-Function (rti_commonblock): '<S879>/S-Function1' incorporates:
33023 * Constant: '<S877>/Constant'
33024 * Constant: '<S877>/Constant1'
33025 */
33026
33027 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
33028 {
33029 /* ... Set the message into sleep mode */
33030 while ((rtican_type1_tq_error[0][5] = can_tp1_msg_sleep
33031 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFFAE4])) ==
33032 DSMCOM_BUFFER_OVERFLOW) ;
33033 }
33034
33035 /* End of Terminate for SubSystem: '<S877>/PropB_REAX_5_E4' */
33036
33037 /* Terminate for Enabled SubSystem: '<S878>/PropB_REAX_5_E4' */
33038
33039 /* Terminate for S-Function (rti_commonblock): '<S880>/S-Function1' incorporates:
33040 * Constant: '<S878>/Constant'
33041 * Constant: '<S878>/Constant1'
33042 */
33043
33044 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
33045 {
33046 /* ... Set the message into sleep mode */
33047 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
33048 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFFAE4])) ==
33049 DSMCOM_BUFFER_OVERFLOW) ;
33050 }
33051
33052 /* End of Terminate for SubSystem: '<S878>/PropB_REAX_5_E4' */
33053
33054 /* Terminate for Enabled SubSystem: '<S897>/Std_COGSOGRapidUpdate_01' */
33055
33056 /* Terminate for S-Function (rti_commonblock): '<S898>/S-Function1' incorporates:
33057 * Constant: '<S897>/Constant'
33058 * Constant: '<S897>/Constant1'
33059 */
33060
33061 /* dSPACE RTICAN TX Message Block: "Std_COGSOGRapidUpdate_01" Id:7 */
33062 {
33063 /* ... Set the message into sleep mode */
33064 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33065 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X7])) ==
33066 DSMCOM_BUFFER_OVERFLOW) ;
33067 }
33068
33069 /* End of Terminate for SubSystem: '<S897>/Std_COGSOGRapidUpdate_01' */
33070
33071 /* Terminate for Enabled SubSystem: '<S899>/EBC1_TX' */
33072
33073 /* Terminate for S-Function (rti_commonblock): '<S900>/S-Function1' */
33074
33075 /* dSPACE RTICAN TX Message Block: "EBC1_TX" Id:418382219 */
33076 {
33077 /* ... Set the message into sleep mode */
33078 while ((rtican_type1_tq_error[0][2] = can_tp1_msg_sleep
33079 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B])) ==
33080 DSMCOM_BUFFER_OVERFLOW) ;
33081 }
33082
33083 /* End of Terminate for SubSystem: '<S899>/EBC1_TX' */
33084
33085 /* End of Terminate for SubSystem: '<S834>/CAN_TX_100ms' */
33086
33087 /* Terminate for Atomic SubSystem: '<S834>/CAN_TX_10ms' */
33088
33089 /* Terminate for Enabled SubSystem: '<S936>/ACCS' */
33090
33091 /* Terminate for S-Function (rti_commonblock): '<S937>/S-Function1' */
33092
33093 /* dSPACE RTICAN TX Message Block: "ACCS" Id:418393572 */
33094 {
33095 /* ... Set the message into sleep mode */
33096 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
33097 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4])) ==
33098 DSMCOM_BUFFER_OVERFLOW) ;
33099 }
33100
33101 /* End of Terminate for SubSystem: '<S936>/ACCS' */
33102
33103 /* Terminate for Enabled SubSystem: '<S944>/EEC1_00' */
33104
33105 /* Terminate for S-Function (rti_commonblock): '<S946>/S-Function1' */
33106
33107 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
33108 {
33109 /* ... Set the message into sleep mode */
33110 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
33111 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400])) ==
33112 DSMCOM_BUFFER_OVERFLOW) ;
33113 }
33114
33115 /* End of Terminate for SubSystem: '<S944>/EEC1_00' */
33116
33117 /* Terminate for Enabled SubSystem: '<S945>/EEC1_00' */
33118
33119 /* Terminate for S-Function (rti_commonblock): '<S947>/S-Function1' */
33120
33121 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
33122 {
33123 /* ... Set the message into sleep mode */
33124 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
33125 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400])) ==
33126 DSMCOM_BUFFER_OVERFLOW) ;
33127 }
33128
33129 /* End of Terminate for SubSystem: '<S945>/EEC1_00' */
33130
33131 /* Terminate for Enabled SubSystem: '<S948>/PropB_REAX_1_E4' */
33132
33133 /* Terminate for S-Function (rti_commonblock): '<S950>/S-Function1' incorporates:
33134 * Constant: '<S948>/Constant'
33135 * Constant: '<S948>/Constant1'
33136 */
33137
33138 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
33139 {
33140 /* ... Set the message into sleep mode */
33141 while ((rtican_type1_tq_error[0][4] = can_tp1_msg_sleep
33142 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFEFE4])) ==
33143 DSMCOM_BUFFER_OVERFLOW) ;
33144 }
33145
33146 /* End of Terminate for SubSystem: '<S948>/PropB_REAX_1_E4' */
33147
33148 /* Terminate for Enabled SubSystem: '<S949>/PropB_REAX_1_E4' */
33149
33150 /* Terminate for S-Function (rti_commonblock): '<S951>/S-Function1' incorporates:
33151 * Constant: '<S949>/Constant'
33152 * Constant: '<S949>/Constant1'
33153 */
33154
33155 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
33156 {
33157 /* ... Set the message into sleep mode */
33158 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
33159 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFEFE4])) ==
33160 DSMCOM_BUFFER_OVERFLOW) ;
33161 }
33162
33163 /* End of Terminate for SubSystem: '<S949>/PropB_REAX_1_E4' */
33164
33165 /* Terminate for Enabled SubSystem: '<S958>/VDC2_0B' */
33166
33167 /* Terminate for S-Function (rti_commonblock): '<S959>/S-Function1' */
33168
33169 /* dSPACE RTICAN TX Message Block: "VDC2_0B" Id:418384139 */
33170 {
33171 /* ... Set the message into sleep mode */
33172 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
33173 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B])) ==
33174 DSMCOM_BUFFER_OVERFLOW) ;
33175 }
33176
33177 /* End of Terminate for SubSystem: '<S958>/VDC2_0B' */
33178
33179 /* End of Terminate for SubSystem: '<S834>/CAN_TX_10ms' */
33180
33181 /* Terminate for Atomic SubSystem: '<S834>/CAN_TX_20ms' */
33182
33183 /* Terminate for Enabled SubSystem: '<S1003>/PropB_XBR_B3' */
33184
33185 /* Terminate for S-Function (rti_commonblock): '<S1004>/S-Function1' */
33186
33187 /* dSPACE RTICAN TX Message Block: "PropB_XBR_B3" Id:218038707 */
33188 {
33189 /* ... Set the message into sleep mode */
33190 while ((rtican_type1_tq_error[1][2] = can_tp1_msg_sleep
33191 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3])) ==
33192 DSMCOM_BUFFER_OVERFLOW) ;
33193 }
33194
33195 /* End of Terminate for SubSystem: '<S1003>/PropB_XBR_B3' */
33196
33197 /* Terminate for Enabled SubSystem: '<S1005>/PropB_Bendix_2C2_XPR' */
33198
33199 /* Terminate for S-Function (rti_commonblock): '<S1006>/S-Function1' */
33200
33201 /* dSPACE RTICAN TX Message Block: "PropB_Bendix_2C2_XPR" Id:218060389 */
33202 {
33203 /* ... Set the message into sleep mode */
33204 while ((rtican_type1_tq_error[1][2] = can_tp1_msg_sleep
33205 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665])) ==
33206 DSMCOM_BUFFER_OVERFLOW) ;
33207 }
33208
33209 /* End of Terminate for SubSystem: '<S1005>/PropB_Bendix_2C2_XPR' */
33210
33211 /* Terminate for Enabled SubSystem: '<S1013>/Std_OdometryData' */
33212
33213 /* Terminate for S-Function (rti_commonblock): '<S1014>/S-Function1' */
33214
33215 /* dSPACE RTICAN TX Message Block: "Std_OdometryData" Id:10 */
33216 {
33217 /* ... Set the message into sleep mode */
33218 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33219 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA])) ==
33220 DSMCOM_BUFFER_OVERFLOW) ;
33221 }
33222
33223 /* End of Terminate for SubSystem: '<S1013>/Std_OdometryData' */
33224
33225 /* End of Terminate for SubSystem: '<S834>/CAN_TX_20ms' */
33226
33227 /* Terminate for Atomic SubSystem: '<S834>/CAN_TX_5000ms' */
33228
33229 /* Terminate for Enabled SubSystem: '<S1028>/RQST_13_E4' */
33230
33231 /* Terminate for S-Function (rti_commonblock): '<S1030>/S-Function1' */
33232
33233 /* dSPACE RTICAN TX Message Block: "RQST_13_E4" Id:417993700 */
33234 {
33235 /* ... Set the message into sleep mode */
33236 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
33237 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4])) ==
33238 DSMCOM_BUFFER_OVERFLOW) ;
33239 }
33240
33241 /* End of Terminate for SubSystem: '<S1028>/RQST_13_E4' */
33242
33243 /* End of Terminate for SubSystem: '<S834>/CAN_TX_5000ms' */
33244
33245 /* Terminate for Atomic SubSystem: '<S834>/CAN_TX_50ms' */
33246
33247 /* Terminate for Enabled SubSystem: '<S1039>/CCVS1_E3' */
33248
33249 /* Terminate for S-Function (rti_commonblock): '<S1041>/S-Function1' */
33250
33251 /* dSPACE RTICAN TX Message Block: "CCVS1_E3" Id:419361251 */
33252 {
33253 /* ... Set the message into sleep mode */
33254 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
33255 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3])) ==
33256 DSMCOM_BUFFER_OVERFLOW) ;
33257 }
33258
33259 /* End of Terminate for SubSystem: '<S1039>/CCVS1_E3' */
33260
33261 /* Terminate for Enabled SubSystem: '<S1040>/TC1_03_05' */
33262
33263 /* Terminate for S-Function (rti_commonblock): '<S1042>/S-Function1' */
33264
33265 /* dSPACE RTICAN TX Message Block: "TC1_03_05" Id:201392901 */
33266 {
33267 /* ... Set the message into sleep mode */
33268 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
33269 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305])) ==
33270 DSMCOM_BUFFER_OVERFLOW) ;
33271 }
33272
33273 /* End of Terminate for SubSystem: '<S1040>/TC1_03_05' */
33274
33275 /* End of Terminate for SubSystem: '<S834>/CAN_TX_50ms' */
33276
33277 /* Terminate for Enabled SubSystem: '<S1052>/Std_SystemTime_01' */
33278
33279 /* Terminate for S-Function (rti_commonblock): '<S1054>/S-Function1' incorporates:
33280 * Constant: '<S1052>/Constant'
33281 * Constant: '<S1052>/Constant1'
33282 */
33283
33284 /* dSPACE RTICAN TX Message Block: "Std_SystemTime_01" Id:5 */
33285 {
33286 /* ... Set the message into sleep mode */
33287 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33288 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X5])) ==
33289 DSMCOM_BUFFER_OVERFLOW) ;
33290 }
33291
33292 /* End of Terminate for SubSystem: '<S1052>/Std_SystemTime_01' */
33293
33294 /* Terminate for Triggered SubSystem: '<S1047>/CAN_TYPE1_TX_M1_C1' */
33295
33296 /* Terminate for S-Function (rti_commonblock): '<S1049>/S-Function1' */
33297
33298 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418184965 */
33299 {
33300 /* ... Set the message into sleep mode */
33301 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33302 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05])) ==
33303 DSMCOM_BUFFER_OVERFLOW) ;
33304 }
33305
33306 /* End of Terminate for SubSystem: '<S1047>/CAN_TYPE1_TX_M1_C1' */
33307
33308 /* Terminate for Triggered SubSystem: '<S1048>/CAN_TYPE1_TX_M1_C1' */
33309
33310 /* Terminate for S-Function (rti_commonblock): '<S1050>/S-Function1' */
33311
33312 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418119429 */
33313 {
33314 /* ... Set the message into sleep mode */
33315 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33316 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05])) ==
33317 DSMCOM_BUFFER_OVERFLOW) ;
33318 }
33319
33320 /* End of Terminate for SubSystem: '<S1048>/CAN_TYPE1_TX_M1_C1' */
33321
33322 /* Terminate for S-Function (rti_commonblock): '<S1055>/S-Function1' */
33323
33324 /* disable digital output channel 4 on port 1 *
33325 * (set to high-impedance), when the simulation terminates */
33326 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH4,
33327 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
33328
33329 /* Terminate for S-Function (rti_commonblock): '<S1056>/S-Function1' */
33330
33331 /* disable digital output channel 2 on port 1 *
33332 * (set to high-impedance), when the simulation terminates */
33333 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH2,
33334 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
33335
33336 /* Terminate for S-Function (rti_commonblock): '<S1057>/S-Function1' */
33337
33338 /* disable digital output channel 1 on port 1 *
33339 * (set to high-impedance), when the simulation terminates */
33340 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH1,
33341 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
33342
33343 /* Terminate for S-Function (rti_commonblock): '<S1058>/S-Function1' */
33344
33345 /* disable digital output channel 3 on port 1 *
33346 * (set to high-impedance), when the simulation terminates */
33347 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH3,
33348 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
33349
33350 /* Terminate for S-Function (rti_commonblock): '<S1059>/S-Function1' */
33351
33352 /* disable digital output channel 1 on port 2 *
33353 * (set to high-impedance), when the simulation terminates */
33354 dio_tp4_pwm_init(DIO_TP4_1_MODULE_ADDR, 2, DIO_TP4_MASK_CH1,
33355 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE, DIO_TP4_TIMING_RANGE2,
33356 DIO_TP4_PWM);
33357
33358 /* Terminate for S-Function (rti_commonblock): '<S1060>/S-Function1' */
33359
33360 /* disable digital output channel 2 on port 2 *
33361 * (set to high-impedance), when the simulation terminates */
33362 dio_tp4_pwm_init(DIO_TP4_1_MODULE_ADDR, 2, DIO_TP4_MASK_CH2,
33363 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE, DIO_TP4_TIMING_RANGE2,
33364 DIO_TP4_PWM);
33365
33366 /* Terminate for S-Function (rti_commonblock): '<S403>/S-Function1' incorporates:
33367 * SubSystem: '<S393>/Background_Task'
33368 */
33369 L4_MAB_Background_Task_Term();
33370
33371 /* End of Terminate for S-Function (rti_commonblock): '<S403>/S-Function1' */
33372
33373 /* Terminate for S-Function (rti_commonblock): '<S409>/S-Function1' incorporates:
33374 * SubSystem: '<S393>/Interrupt_Task'
33375 */
33376 L4_MABX_Interrupt_Task_Term();
33377
33378 /* End of Terminate for S-Function (rti_commonblock): '<S409>/S-Function1' */
33379
33380 /* Terminate for S-Function (rti_commonblock): '<S455>/S-Function1' */
33381
33382 /* dSPACE RTICAN STD Srvc-Message Block */
33383 {
33384 /* ... Set the message into sleep mode */
33385 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
33386 (CANTP1_RX_SPMSG_M1_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33387 }
33388
33389 /* dSPACE RTICAN XTD Srvc-Message Block */
33390 {
33391 /* ... Set the message into sleep mode */
33392 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33393 (CANTP1_RX_SPMSG_M1_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33394 }
33395
33396 /* Terminate for S-Function (rti_commonblock): '<S456>/S-Function1' */
33397
33398 /* dSPACE RTICAN STD Srvc-Message Block */
33399 {
33400 /* ... Set the message into sleep mode */
33401 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
33402 (CANTP1_RX_SPMSG_M1_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33403 }
33404
33405 /* dSPACE RTICAN XTD Srvc-Message Block */
33406 {
33407 /* ... Set the message into sleep mode */
33408 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33409 (CANTP1_RX_SPMSG_M1_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33410 }
33411
33412 /* Terminate for S-Function (rti_commonblock): '<S457>/S-Function1' */
33413
33414 /* dSPACE RTICAN STD Srvc-Message Block */
33415 {
33416 /* ... Set the message into sleep mode */
33417 while ((rtican_type1_tq_error[1][0] = can_tp1_msg_sleep
33418 (CANTP1_RX_SPMSG_M2_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33419 }
33420
33421 /* dSPACE RTICAN XTD Srvc-Message Block */
33422 {
33423 /* ... Set the message into sleep mode */
33424 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
33425 (CANTP1_RX_SPMSG_M2_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33426 }
33427
33428 /* Terminate for S-Function (rti_commonblock): '<S458>/S-Function1' */
33429
33430 /* dSPACE RTICAN STD Srvc-Message Block */
33431 {
33432 /* ... Set the message into sleep mode */
33433 while ((rtican_type1_tq_error[1][0] = can_tp1_msg_sleep
33434 (CANTP1_RX_SPMSG_M2_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33435 }
33436
33437 /* dSPACE RTICAN XTD Srvc-Message Block */
33438 {
33439 /* ... Set the message into sleep mode */
33440 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
33441 (CANTP1_RX_SPMSG_M2_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33442 }
33443
33444 /* Terminate for S-Function (rti_commonblock): '<S459>/S-Function1' */
33445
33446 /* dSPACE RTICAN STD Srvc-Message Block */
33447 {
33448 /* ... Set the message into sleep mode */
33449 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33450 (CANTP1_RX_SPMSG_M3_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33451 }
33452
33453 /* dSPACE RTICAN XTD Srvc-Message Block */
33454 {
33455 /* ... Set the message into sleep mode */
33456 while ((rtican_type1_tq_error[2][1] = can_tp1_msg_sleep
33457 (CANTP1_RX_SPMSG_M3_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33458 }
33459
33460 /* Terminate for S-Function (rti_commonblock): '<S460>/S-Function1' */
33461
33462 /* dSPACE RTICAN STD Srvc-Message Block */
33463 {
33464 /* ... Set the message into sleep mode */
33465 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33466 (CANTP1_RX_SPMSG_M3_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33467 }
33468
33469 /* dSPACE RTICAN XTD Srvc-Message Block */
33470 {
33471 /* ... Set the message into sleep mode */
33472 while ((rtican_type1_tq_error[2][1] = can_tp1_msg_sleep
33473 (CANTP1_RX_SPMSG_M3_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33474 }
33475}
33476